我正在尝试访问返回的MongoDB(mongoose)find的属性。
如果我尝试控制整个对象的日志,我可以看到它。但是如果我尝试记录属性,我会得到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
访问结果。
但究竟是什么原因造成我以前不记得要这样做。
答案 0 :(得分:15)
如果文档中的字段在console.log
整个文档时出现,而在您直接访问该字段时则显示,则表示模型的模式定义中缺少该字段。
然后将email
添加到User
的架构中。