Express Mongoose:为什么要将接收到的数据转换为对象

Express Mongoose:为什么要将接收到的数据转换为对象,express,mongoose,lodash,Express,Mongoose,Lodash,我在学猫鼬,我想弄明白。 为什么需要toObject()将接收到的数据转换为Object,而它似乎已经是Object形式了 代码如下: UserSchema.methods.toJSON = function() { var user = this; var userObject = user.toObject(); return _.pick(userObject, ['_id', 'email']); }; 我无法理解为什么使用toObject()从对象中提取有意义的属性 感

我在学猫鼬,我想弄明白。 为什么需要toObject()将接收到的数据转换为Object,而它似乎已经是Object形式了

代码如下:

UserSchema.methods.toJSON = function() {
  var user = this;
  var userObject = user.toObject();

  return _.pick(userObject, ['_id', 'email']);
};
我无法理解为什么使用toObject()从对象中提取有意义的属性


感谢

toObject
是一种mongoose文档方法
document.prototype.toObject()
,它:

将此文档转换为普通javascript对象,以便在MongoDB中存储


之所以在那里调用它,是因为需要一个普通的JS对象来执行lodash
。选择
,它将创建一个只包含
\u id
email
属性的新对象。

为什么不控制台.log(user)并找出它包含什么?在本例中,
可能包含对您未预料到的内容的引用:)。玩console.log,看看它显示了什么。好的!谢谢,不客气。如果您觉得这有帮助,请将其标记为答案,以便其他人更容易找到您问题的答案。