1
我正在寻找相当于现有属性的虚拟物。我想在我称之为现有模式属性时修改一个值(如条形标签或其他)。我目前使用一个不同名称的虚拟来实现这一点。显然,当虚拟与现有属性具有相同的名称时,Mongoose会中断。似乎没有任何前/后获取过滤器 - 建议?猫鼬属性过滤器
我正在寻找相当于现有属性的虚拟物。我想在我称之为现有模式属性时修改一个值(如条形标签或其他)。我目前使用一个不同名称的虚拟来实现这一点。显然,当虚拟与现有属性具有相同的名称时,Mongoose会中断。似乎没有任何前/后获取过滤器 - 建议?猫鼬属性过滤器
假设你是说你有比内部存储不同的“外部”格式...
有没有办法完全覆盖GET /在100%一致的方式,而不设定跳水深成猫鼬内部。我最近做了一些探索,这是一个深深的黑洞。 :(
你有几个合理的选择:
_color
属性,然后公开为color
例如,而不是试图超载相同的值。然后,很明显(也许通过约定),下划线前缀值是“仅供内部使用”。toColorString
或者类似的东西,这样就可以清楚何时/如何使用它。如果您使用虚拟/隐藏属性,它会使查询文档有点混乱,因为该属性不会以相同名称或以与查询数据完全相同的方式显示。所以,这就是为什么我会倾向于使用自定义函数来尽可能地获取给定属性/字段的自定义格式化版本。
雅 - 这是我发现的。我对虚拟技术很好 - 习惯了他们的怪癖。只是希望能进行一些自动的预处理,就像保存一样。 – cyberwombat
事情是......你并不是真的想在加载数据时改变它。你只希望它的外观给消费者改变。那不一样。你真的想保留“原始”数据。 – WiredPrairie
是的,我同意 - 我目前的情况是我需要修改一些数据 - 事情就是我们在很多地方使用它。所以我可以在任何地方改变它(即添加一些过滤)或者按照我的意愿处理它。 – cyberwombat