Возникли проблемы с возвратом данных на MongoDB найти - PullRequest
1 голос
/ 01 мая 2020

У меня есть этот код, который получает всех пользователей в базе данных, и для каждого пользователя выбирается сообщение (что означает, что пользователь публикует), проблема в том, что я не получаю никакой ошибки, но также я не получаю никакого результата. Не знаю, почему

это мой код

 User.find({}).lean(true).exec((err, users) => {
            var userMap = [];
            for (let i =0 ; i < users.length; i++) { 
                console.log('Im here')

                    if(users[i].posts.length) {
                        console.log(users[i])
                        for (let j = 0; j < users[i].posts.length; j++) {
                        console.log('Im here 2')
                        userMap.push({ user: users[i], posts: users[i].posts[j] });
                        console.log('Im here 3')
                    }    
        }

        }
        console.log(userMap);

ошибка для этого кода ниже: enter image description here Единственный результат, который я получаю за console.log(userMap) [] и console.log(users.length) => undefined

Любые идеи, пожалуйста,

С наилучшими пожеланиями,

[

1 Ответ

0 голосов
/ 01 мая 2020

Есть несколько проблем с вашим кодом, попробуйте ниже код:

User.find({}).lean(true).exec((err, users) => {
    var userMap = [];
    for (let i =0 ; i < users.length; i++) { 
        console.log('Im here')
        for (let j = 0; j < users[i].posts.length; j++) {
            console.log('Im here 2')
            userMap.push({ user: users[i], posts: users[i].posts[j] });
            console.log('Im here 3')
    }

}
console.log(userMap);

Проблемы: Опечатка на let i должна быть let i =0, а также вам нужно использовать .lean(true) для преобразования документа MongoDB BSON в. Js порядок объектов для доступа к нему и работы с ним.

...