我有两个集合user
和transaction
。我想获取集合user
上exists
而非transaction
的记录。然后我这样做
[
{
"$lookup" : {
"from" : "transaction",
"localField":"_id",
"foreignField":"user",
"as" : "trans"
}
},
{
"$match": { "transaction.user": { "$exists": false } }
},
{"$limit":20}
]
但是我没有记录我想要的东西。
答案 0 :(得分:0)
从user
到transaction
集合进行汇总。正如@ thammada.ts所述,您应该像这样在trans
中使用$match
db.user.aggregate([
{
"$lookup": {
"from": "transaction",
"localField": "_id",
"foreignField": "user",
"as": "trans"
}
},
{
"$match": {
"trans.user": {
"$exists": false
}
}
}
])
还要验证_id
集合和user
中两个字段user
的类型
在transaction
集合中。