J'ai un problème étrange avec la mangouste où je veux accéder spécifiquement aux clés d'un modèle.

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');
}

Mais la journalisation de l'ensemble du modèle montre qu'il est là, mais avec Object.keys il n'y est pas...

Comment accéder directement à user.firstName ?

0
Zac 11 nov. 2020 à 21:34

1 réponse

Meilleure réponse

C'est parce que vous obtenez des objets Mongoose, pas simplement des données JSON.

Si vous ne voulez que des données JSON pures, utilisez lean() :

 const users = await User.find().lean();
1
Jeremy Thille 11 nov. 2020 à 18:40