如何在 MongoDB 中应用 $lookup,如果第二个集合上的记录被删除,仍然给出第一个集合的所有记录的响应,如给定示例所示
第一次收藏
A: [
{ _id : "a" , P : "dljslfsdjf" },
{ _id : "b" , P : "dljslfsdjf" },
{ _id : "c" , P : "dljslfsdjf" },
{ _id : "d" , P : "dljslfsdjf" }
]
第二次收藏
B: [
{A _id : "a" , Q : "dljslfsdjf" },
{A_id : "b" , Q : "dljslfsdjf" },
{ A_id : "c" , Q : "dljslfsdjf" }
]
想要回应——
C: [
{ _id : "a" , P : "dljslfsdjf", BB: {A _id : "a" , Q : "dljslfsdjf" } },
{ _id : "b" , P : "dljslfsdjf", BB : {A_id : "b" , Q : "dljslfsdjf" } },
{ _id : "c" , P : "dljslfsdjf", BB : { A_id : "c" , Q : "dljslfsdjf" } },
{ _id : "d" , P : "dljslfsdjf", BB: {**anything that indicates record not found**} }
]
我写一个查询——
db.A.aggregate([
{
$match: {
P : "dljslfsdjf"
}
},
{
$lookup : {
from : "B",
localField : "_id",
foreignField : "A_id",
as : "BB"
}
}
{
$unwind : "$BB"
}
])
它只返回树记录,不返回--
_id : "d" , P : "dljslfsdjf", BB: {**anything that indicate record not found**}