1
這是「公司」收集數據
{
_id: "1",
company: "ABC",
addresses: [
{
_id: "2",
address: "a1",
district: "d1",
city: "c1"
},
{
_id: "3",
address: "a2",
district: "d2",
city: "c2"
},
{
_id: "4",
address: "a3",
district: "d3",
city: "c3"
}
]
}
這是「產品」收集數據
{
product: "xyz",
companyid: "1", //_id of record in company's collection
addresses: ["2", "4"] //addresses _id of record in company's collection
},
{
product: "pqr",
companyid: "1",
addresses: ["3", "4"]
}
現在我需要與公司所有產品及其地址,像下面
{
product: "xyz",
company: "ABC",
addresses: [
{
_id: "2",
address: "a1",
district: "d1",
city: "c1"
},
{
_id: "4",
address: "a3",
district: "d3",
city: "c3"
}
]
},
{
product: "pqr",
companyid: "ABC",
addresses: [
{
_id: "3",
address: "a2",
district: "d2",
city: "c2"
},
{
_id: "4",
address: "a3",
district: "d3",
city: "c3"
}
]
}
如果有數組,只有在產品中,我們可以放開它們並執行查找。但是在這種情況下,兩個集合中都有數組,那麼我們如何比較它們或使用$ lookup來獲得預期的輸出?如果有其他選擇,請告訴我。
大使用$ setIsSubset的。 –