MongoDB在另一个集合中查找具有匹配字段的文档

时间:2018-06-26 06:02:46

标签: mongodb

    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 集合中找到在 known 集合中的文档中存在system_id的文档,那怎么办完成?我目前正在跨 peeps 运行聚合,在其中找到 name system_id 的所有唯一组合,但是我需要排除所有不在已知集合中。

1 个答案:

答案 0 :(得分:1)

db.peeps.aggregate({
    $lookup : {
        from : "known",
        localField : "system_id",
        foreignField : "system_id",
        as : "someField"
    }
},{
    $match : {
        "someField.0" : {
            $exists : true
        }
    }
},{

    $project : {
        "someField" : 0
    }

})

这将输出所有与knwon匹配的system_id的窥视器。