我正在尝试访问返回的 MongoDB (mongoose) 查找的属性。
如果我尝试控制台记录整个对象,我可以看到它的全部。但是如果我尝试记录一个属性,我会得到 undefined
。对象就在那里!
function getAll () {
let d = q.defer();
User.find({}, function (err, docs) {
if (err) {
d.reject(err);
}
for(let user of docs) {
console.log(user); // This works!
console.log(user.email); // This returns undefined!
}
d.resolve();
});
return d.promise;
}
有什么想法吗? 我还尝试使用 JSON.parse 以防它被字符串化(只是为了确保)但事实并非如此。
更新
看来我可以使用 user._doc.email
访问结果。
但这是什么原因造成的呢?我不记得以前必须这样做。
最佳答案
如果您在 console.log
时出现文档中的字段整个文档,但不是当您直接访问该字段时,这意味着模型的架构定义中缺少该字段。
所以添加email
到 User
的模式.
关于javascript - Mongoose - 无法访问对象属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36381311/