我正在嘗試加入兩個表并使用 mongodb 根據從一個表到另一個表的 id 陣列獲取一些額外的資料。一個與“用戶”相關的集合,另一個是“訂單”。用戶集合包含與訂單相關的 id 陣列,訂單表包含訂單名稱和其他資料。我需要列出所有用戶的所有訂單名稱和資料以及用戶詳細資訊。
例如:
User Collection:
User = [{
_id: ObjectId,
userId: 1,
userName: "User1",
OrderIds: [{oId: 1},{oId:3}]
},
{
_id: ObjectId,
userId: 2,
userName: "User2",
OrderIds: [{oId: 2},{oId:3}]
}]
--------------------------------------------
Order Collection:
Order = [{
_id: ObjectId,
orderId: 1
orderName: "Pen"
},
{
_id: ObjectId,
orderId: 2
orderName: "Book"
},
{
_id: ObjectId,
orderId: 3
orderName: "Chair"
}]
---------------------------------------------------
Desired Output:
-----------------------------------------------------
Output = [{
_id: ObjectId,
userId: 1,
userName: "User1",
OrderIds: [{oId: 1,oName: "Pen"},{oId:3,oName: "Chair"}]
},
{
_id: ObjectId,
userId: 2,
userName: "User2",
OrderIds: [{oId: 2,oName: "Book"},{oId:3,oName: "Chair"}]
}]
請任何人有想法,如何做到這一點?
uj5u.com熱心網友回復:
使用$lookup
db.users.aggregate([
{
"$lookup": {
"from": "orders",
"localField": "OrderIds.oId",
"foreignField": "orderId",
"as": "OrderIds"
}
}
])
mongoplayground
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/314284.html
標籤:MongoDB
