首先,不知道雲開發使用的集合到底是什么數據庫,貌似傳聞是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()