समाधान
आप toObject
. पर कॉल कर सकते हैं फ़ील्ड तक पहुँचने के लिए विधि। उदाहरण के लिए:
var itemObject = item.toObject();
console.log(itemObject.title); // "foo"
क्यों
जैसा कि आप बताते हैं कि असली फ़ील्ड _doc
. में संग्रहीत हैं दस्तावेज़ का क्षेत्र ।
लेकिन क्यों console.log(item)
=> { title: "foo", content: "bar" }
?
नेवले के स्रोत कोड (दस्तावेज़.जेएस) से, हम पा सकते हैं कि toString
Document
की विधि toObject
. पर कॉल करें तरीका। तो console.log
फ़ील्ड 'सही ढंग से' दिखाएगा। स्रोत कोड नीचे दिखाया गया है:
var inspect = require('util').inspect;
...
/**
* Helper for console.log
*
* @api public
*/
Document.prototype.inspect = function(options) {
var isPOJO = options &&
utils.getFunctionName(options.constructor) === 'Object';
var opts;
if (isPOJO) {
opts = options;
} else if (this.schema.options.toObject) {
opts = clone(this.schema.options.toObject);
} else {
opts = {};
}
opts.minimize = false;
opts.retainKeyOrder = true;
return this.toObject(opts);
};
/**
* Helper for console.log
*
* @api public
* @method toString
*/
Document.prototype.toString = function() {
return inspect(this.inspect());
};