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

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


在猫鼬查询回调中运行我的函数时,控制台将记录以下内容:

{_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不包含登录实际对象时显示的属性名称?

最佳答案

猫鼬文档字段存储在obj._doc

console.log由于附加到文档对象的.inspect功能而显示文档字段。

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

关于javascript - Mongoose 对象的键与属性名称不同,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47564379/

10-16 17:57
查看更多