2013-02-07 5 views
8

Đây là schema của tôiMongoose 3.4.0 trở về [đối tượng Object] thay vì giá trị thực tế - Nodejs

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

Tuy nhiên khi tôi:

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

tôi nhận được [object Object], trong khi nó phải trả lại {url:"asd",type:"asd"}

Trong thực tế, nếu tôi truy cập, tôi nhận được:

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

Trả lời

22

Để sử dụng một lĩnh vực tên type trong một tiểu tài liệu nhúng như storage, bạn phải sử dụng một định nghĩa rõ ràng hoặc Mongoose bị nhầm lẫn:

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

Điều này có được của tôi tất cả các thời gian và tôi không bao giờ có thể nhớ được giải pháp. – Micah

-1

không sử dụng console.log(), sử dụng thay vì

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

cảm ơn vì đề xuất này, điều này không giải quyết được vấn đề. :( – nick