2012-07-03 146 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。這就是爲什麼你會看到底層數據。