我的大部分經驗是使用 MySQL,我基本上是在嘗試使用 Mongoose 進行連接。我需要查詢所有具有特定partner_id 訂單的用戶。這就是我在 MySQL 中撰寫查詢的方式
SELECT * FROM guestUsers
LEFT JOIN partnerOrders ON guestUsers.id = partnerOrders.guest_user_id
WHERE partnerOrders.partner_id = "TF"
在我的 partnerOrders 架構中,我有 guest_user_id 欄位,它是一個參考 guestUsers 的 objectId
guest_user_id: { type: Schema.Types.ObjectId, ref: 'guestUser' }
這是我到目前為止對貓鼬的了解,但由于我缺乏經驗,我可能完全錯誤地接近這個
const guest_users = await guestUserModel.aggregate( [
{
$lookup: {
from: 'partnerOrders',
localField: '_id',
foreignField: 'guest_user_id',
as: 'partnerOrders',
let: {partner_id: "$partner_id"},
pipeline: [
{$match: {$expr: {$eq: [ "$partner_id", "TF"] }}}
]
}
}
])
任何幫助將不勝感激,感謝您的寶貴時間。
uj5u.com熱心網友回復:
詢問
- 使用管道查找以匹配“TF”
- 展開以分離陣列成員
- 與 root 合并并替換它
- 投影查找欄位(無論如何都在根上移動資訊)
*我無法在您的示例資料上對其進行測驗,但我認為您將能夠做到這一點,否則您是否可以添加示例資料和預期輸出。
PlayMongo
guestUser.aggregate(
[{"$lookup":
{"from": "partnerOrders",
"localField": "_id",
"foreignField": "guest_user_id",
"pipeline": [{"$match": {"partner_id": {"$eq": "TF"}}}],
"as": "partnerOrders"}},
{"$unwind": "$partnerOrders"},
{"$replaceRoot":
{"newRoot": {"$mergeObjects": ["$partnerOrders", "$$ROOT"]}}},
{"$project": {"partnerOrders": 0}}])
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/441383.html
下一篇:將值添加到閾值以下的串列中
