nodejs属性未定义

时间:2012-07-03 08:25:05

标签: node.js express mongoose

我定义了:

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

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

这怎么可能?

感谢。

1 个答案:

答案 0 :(得分:1)

mongoose对象的属性始终与其架构相同。作为Type1架构加载的属性为Type1架构。

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

最后一件事:object.toString实际上是覆盖的,它显示整个对象的inspect。这就是你看到底层数据的原因。