2013-02-07 200 views
8
的NodeJS

這是我的架構貓鼬3.4.0返回[對象對象],而不是實際值 -

var elementSchema = new Schema({ 
    name: String, 
    storage: { 
    url: String, 
    type: String 
    } 
}); 

然而,當我:

var newElement = new Element(); 
    newElement.storage = {}; 
    newElement.storage.url = "asd"; 
    newElement.storage.type = "asd"; 
    console.log(newElement.storage); 

我得到[object Object],雖然它應該返回{url:"asd",type:"asd"}

事實上,如果我去查詢它,我會得到:

{ 
    storage: "[object Object]", 
    bubble: ObjectId("510880b82e6e350200000002"), 
    _id: ObjectId("5113c0c0786ece0000000001"), 
    __v: 0 
} 

回答

22

要嵌入的子文檔中使用一個名爲type場像storage,你必須使用一個明確的定義或貓鼬會很困惑:

var elementSchema = new Schema({ 
    name: String, 
    storage: { 
    url: String, 
    type: { type: String } 
    } 
}); 
+0

這是我的所有時間,我永遠不會記得解決方案。謝謝! – Micah

-1

不使用console.log(),改用

var util = require('util'); 
util.inspect(newElement.storage); 
+0

感謝您的建議,但這並不能解決問題。 :( – nick