2013-02-07 157 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