2013-02-07 7 views
8

To jest mój schematMongoose 3.4.0 powraca [object Object] zamiast wartości rzeczywistych - Nodejs

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

Jednak kiedy:

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

uzyskać [object Object], podczas gdy powinien on powrócić {url:"asd",type:"asd"}

W rzeczywistości, jeśli przejdę do zapytania, otrzymam:

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

Odpowiedz

22

Aby skorzystać z pola o nazwie type w osadzonym sub-dokumentów jak storage, trzeba użyć jednoznacznej definicji lub Mongoose pogubi:

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

To jest mnie przez cały czas i nigdy nie pamiętam rozwiązania. – Micah

-1

nie używaj console.log(), użyj zamiast

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

dzięki za sugestię, to jednak nie rozwiązuje problemu. :( – nick

Powiązane problemy