MongoDB находит документы с соответствующим полем в другой коллекции - PullRequest
0 голосов
/ 26 июня 2018
    known = [{ system_id : 1234},
    { system_id : 1235},
    { system_id : 1236},
    { system_id : 1237}]

    peeps = [
{system_id: 1234, name : bob},
    {system_id: 1232, name : jim},
    {system_id: 1231, name : dave},
    {system_id: 1237, name : jeff}
]

Если у меня есть две вышеупомянутые коллекции, и я хочу найти документы в коллекции peeps , у которых есть system_ids, которые существуют в документах в коллекции известные , как можночто будет сделано?В настоящее время я выполняю агрегацию через peeps , где я нахожу все уникальные комбинации name и system_id , но мне нужно исключить все, что не входит в известная коллекция.

1 Ответ

0 голосов
/ 26 июня 2018
db.peeps.aggregate({
    $lookup : {
        from : "known",
        localField : "system_id",
        foreignField : "system_id",
        as : "someField"
    }
},{
    $match : {
        "someField.0" : {
            $exists : true
        }
    }
},{

    $project : {
        "someField" : 0
    }

})

Это выведет все те пипы, для которых system_id соответствует в knwon.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...