微信小程序開發之雲開發多表關聯


首先,不知道雲開發使用的集合到底是什么數據庫,貌似傳聞是NOSQL庫中的mongodb,查詢語法和mongodb也很像,由於關系型數據庫用多了,大多數情況下都在用LINQ,SQL使用的都很少了。

簡單熟悉了一下雲開發中多個集合表的關聯方式,下面舉個簡單多關聯的例子,廢話少說上代碼:

 1 const result = await db.collection('Table_A').aggregate()
 2      // 單條件關聯
 3      .lookup({
 4         from: 'Table_C',
 5         localField: 'A_CId',
 6         foreignField: 'C_Id',
 7         as: 'CInfo'
 8       })
 9      // 多條件關聯
10     .lookup({
11       from: 'Table_B', // 關聯Table_B表
12       let: {
13         A_id: '$A_id' // 關聯A表的_id字段
14         A_type: '$A_type' // 關聯A表的_type字段
15       },
16       pipeline: $.pipeline()
17          // 關聯條件,第一個為主結果集屬性字段,第二個為let的屬性字段
18          // 關於條件,有很多,可以參考數據庫文檔,結尾會附上鏈接
19         .match(_expr($.and([
20          $.eq(['$B_id', '$$A_id'])
21          $.eq(['$B_type', '$$A_type']
22         ])))
23         // 選擇需要查詢出關聯b表的哪些字段,1查詢,0不查,也可以在這里進行一些字段格式化之類的操作
24         .project({
25           b_name: 1
26         })
27         .done(),
28         // 輸出到主結果集的別名
29         as: 'BInfo',
30     })
31   .end()

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM