您好,登錄后才能下訂單哦!
這篇文章主要介紹mongoDB實現關聯查詢的方法,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!
需求:把訂單表(PrepurchaseOrder)和用戶表(User)通過郵箱(emaiL)進行關聯,查找訂單用戶對應的錢包地址。
訂單表結構如下:
{ "email" : "haifeng@163.com", "productName" : "中型2GPU礦機", }
用戶表結構如下:
{ "email" : "15077550@qq.com", "neoWalletAddress" : "aabbccdd", }
最終的sql如下:
db['PrepurchaseOrder'].aggregate([{ $lookup:{ from:"User", localField:"email", foreignField: "email", as: "Users" }}, { $unwind: "$Users" }, { $match : { "Users.neoWalletAddress" : {$exists:true} }}, { $project: { productName: 1,count:1,email:1,"Users.neoWalletAddress":1}}, ])
sql解析:
1.from:"User" 表示從User表中去查
2.localField:"email",表示訂單表(PrepurchaseOrder)中的郵箱。
3.foreignField: "email",表示用戶表(User)中的郵箱。
4.as: "Users",表示把從User表中查詢出的內容作為一個Users變量,附加到訂單表(PrepurchaseOrder)
5.{ $unwind: "$Users" },表示把從User表中查詢的數據字段,作為訂單表(PrepurchaseOrder)中的字段
6. $match,表示進行值的匹配,匹配User表中錢包地址不為null的。
7. $project,表示指定顯示哪些字段。
最終導出的數據如下圖:
以上是mongoDB實現關聯查詢的方法的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。