返回模型的猫鼬键未定义

时间:2020-11-11 18:34:14

标签: javascript node.js mongodb object mongoose

猫鼬有一个奇怪的问题,我想专门访问模型的键。

export const exportUsers = async () => {
    const users = await User.find();
    const headers = ["firstName","lastName"]

    users.forEach((user) => {
        console.log(user);
        // this shows:
        // {
        //    firstName: "zac",
        //    lastName: "taylor"
        // }

        console.log(user.firstName); // undefined; nothing
        
        // if i log the keys for the user:
        console.log(Object.keys(user));

        // i get this weird stuff:
        // [
        //   '$parent',
        //   '$isSingleNested',
        //   '$__',
        //   'isNew',
        //   'errors',
        //   '$locals',
        //   '$op',
        //   '_doc',
        //   '$init'
        // ]

    })

    return csvify.create(exportData, headers, 'Users-List.csv');
}

但是记录整个模型会显示它在那里,但是使用Object.keys时它就不存在了...

我如何直接访问user.firstName

1 个答案:

答案 0 :(得分:1)

这是因为您正在获取Mongoose对象,而不仅仅是JSON数据。

如果只需要纯JSON数据,请使用lean():

 const users = await User.find().lean();