-1

我定义:

  • 用于保存对象的猫鼬模式(Type1)
  • 其他 2 个使用其他属性(内容和其他...)扩展第一个模式(Type2 和 Type3)的其他人。

当我从数据库加载保存为 Type 2 的对象 Type1 时,我可以访问除一个(内容属性)之外的所有属性。但是,如果我这样做,object.toString()该属性确实存在。

这怎么可能?

谢谢。

4

1 回答 1

1

mongoose 对象的属性始终与其模式相同。作为Type1模式加载将具有模式的属性Type1

底层数据可能更大(因为 Schema 继承或仅仅因为有人直接在 MongoDB 中存储了更多数据),但您无法从Type1仅使用属性的级别访问它。您可以尝试使用(未测试)的方法是object.getValue('content');. 另外,我认为它object._doc包含来自数据库的真实数据。

最后一件事:object.toString实际上是被覆盖的,它显示inspect了整个对象。这就是为什么您会看到基础数据。

于 2012-07-03T09:08:45.533 回答