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 的所有唯一组合,但是我需要排除所有不在已知集合中。
答案 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的窥视器。