猫鼬:依赖于其他虚拟属性的虚拟属性

时间:2019-12-26 22:00:34

标签: mongodb mongoose

在猫鼬中,可能有一个依赖于另一个虚拟属性的虚拟属性吗?例如: 如果我具有属性squaresAmnttrianglesAmntappleAmntpearAmnt(均为Number类型),然后创建两个虚拟属性:

mySchema.virtual('totalShapes').get(function() {
  return this.squaresAmnt + this.trianglesAmnt;
});

mySchema.virtual('totalFruit').get(function() {
  return this.appleAmnt + this.pearAmnt;
});

是否可以使用total的总和来创建第三虚拟属性totalShapes + totalFruit而不是自己创建4个属性?对于我的特定用例,我想避免使用后者。

1 个答案:

答案 0 :(得分:0)

是的,您可以使用this.来引用它们,例如。 this.totalShapes

要注意的一件事-如果编写查询的人使用$ select,则虚拟机所依赖的字段可能不存在;虚拟查询无法使用查询未返回的字段。因此,请采取防御措施,并在虚拟实现中检查所需字段。