$ и и $ или из двух коллекций в mongodb - PullRequest
0 голосов
/ 20 сентября 2018

Я хотел бы обработать данные из двух коллекций.В фруктовых дБ есть яблоки и лайм.Я хотел бы запросить категории: O и category: W в яблоке, а затем проверить, какая из них активна последние 3 дня из коллекции яблок.Исходя из этого, я собираюсь найти значение <30 в коллекции извести.Как бы я получить этот запрос?Я все еще учу Mongodb!</p> Это мои два запроса

db.apple.find({$or: [{"category": "W"},{"category": "O"}]})
db.apple.find({active: {"$gte": new Date()}})

1 Ответ

0 голосов
/ 20 сентября 2018

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

Потребуется что-то вроде следующего:

db.apple.aggregate(
{
    "$match": {
        "category": { $in: ["W", "O"] },
        "active": { $gte: new Date() }
    }
},
{
    "$lookup": {
       from: "lime",
       localField: "no_id",
       foreignField: "no_id",
       as: "lime"
    }
}
)

Обратите внимание, что для каждого подходящего яблока массив лаймов будет возвращен туда, где известь.no_id соответствует apple.no_id.Они будут возвращены как массив вложенных документов.

...