Mongoose对象的键与属性名称不同

时间:2017-11-30 01:10:05

标签: javascript node.js mongodb mongoose

为了解决我遇到的错误,我编写了以下代码段:

var myFunction = function(obj) {
var keys = Object.getOwnPropertyNames(obj);
console.log(obj);
console.log(keys);
}

在mongoose查询回调中运行我的函数时,控制台会记录下这个:

{_id: 5a8g123vjsdj83nf8afvn48,
username: 'Player1',
adv1: { name: 'a', type: '!' },
adv2: { name: 'a', type: '!' },
adv3: { name: 'a', type: '!' },
__v: 0,
invitations: [ 'PlayTest1', 'PlayTest2' ] }

[ '$__', 'isNew', 'errors', '_doc', '$init' ]

据我所知,控制台中的最后一行(为便于阅读而分开)应为:

[ '_id', 'username', 'adv1', 'adv2', 'adv3', '__v', 'invitations ]

我的问题是为什么我在myFunction中创建的键obj不包含我记录实际对象时显示的属性名称?

1 个答案:

答案 0 :(得分:0)

Mongoose文档字段存储在obj._doc

中 由于附加到文档对象的.inspect函数,

console.log显示文档字段。

如果要调试某些内容,请使用node --inspect