Отфильтровать коллекцию в мангусте?

В моем проекте MongoDB есть три коллекции. одна коллекция включает пользователей, другая - для учетных записей конкретных пользователей, а последняя - несколько кампаний.

Я хотел получить кампании, основанные на пользовательских платформах.

Документы кампании выглядят следующим образом.

[{
id: "401",
maxfollowers: "645963",
minfollowers: "2665",
name: "test 12",
platform: "Youtube",
status: "Active",
userId: "123"
},
{
id: "402",
maxfollowers: "6202",
minfollowers: "500",
name: "test 123",
platform: "Toktok",
status: "Active",
userId: "123"
}]

Отчетные документы выглядят следующим образом.

[{
id: "501",
followers: "6000",
platform: "Youtube",
userId: "123"
},
{
id: "502",
followers: "500",
platform: "Toktok",
userId: "123"
}]

здесь у пользователя с Id = 123 есть две учетные записи. Основываясь на платформе учетных записей пользователей и подписчиках, я хотел написать запрос, чтобы получить список кампаний.

ниже приведен код, который я пробовал.

Account.find({userId})
            .then(result => {
                console.log(result)
                const platforms = [];
                result.forEach(item => {
                  // frame the query here.
                });
                Advertisement.find(search)
                    .then(response => {
                        res.status(200).json({
                            data: response
                        });
                    })
                    .catch(err => {
                        errorHandler(res, err);
                    });
            })
            .catch(err => {
                errorHandler(res, err);
            });

Я использую NodeJs, express js и mongoose.


person Anji    schedule 02.10.2020    source источник


Ответы (1)


Я предлагаю использовать агрегат с поиском $, чтобы присоединиться к коллекции, см. совпадение конвейера поиска MongoDB $ с _id не работает

person Daphoque    schedule 02.10.2020