Mongoose - 无法访问对象属性?

时间:2016-04-03 03:27:44

标签: javascript node.js mongodb mongoose ecmascript-6

我正在尝试访问返回的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访问结果。 但究竟是什么原因造成我以前不记得要这样做。

1 个答案:

答案 0 :(得分:15)

如果文档中的字段在console.log整个文档时出现,而在您直接访问该字段时则显示,则表示模型的模式定义中缺少该字段。

然后将email添加到User的架构中。