微信小程序开发之云开发多表关联


首先,不知道云开发使用的集合到底是什么数据库,貌似传闻是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