2012-07-03 173 views
-1

我定义:属性的NodeJS未定义

  • 猫鼬模式(类型1),以保存对象
  • 2个其他延伸所述第一模式(类型2和类型3)与其他属性(内容,和其他.. )。

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

这怎么可能?

谢谢。

+2

因此,没有代码,没有'object.toString()'输出,什么也没有?你希望有人帮助你盲目吗? – lanzz

+0

做object.toString()字符串具有从数据库加载的所有属性,但我没有访问Type2或Type3的属性。 – catacs

回答

1

猫鼬对象的属性总是与其模式相同。加载为Type1架构将具有Type1架构的属性。

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

最后一件事:object.toString实际上被重写,它显示了整个对象的inspect。这就是为什么你会看到底层数据。