首先,不知道云开发使用的集合到底是什么数据库,貌似传闻是NOSQL库中的mongodb,查询语法和mongodb也很像,由于关系型数据库用多了,大多数情况下都在用LINQ,SQL使用的都很少了。
简单熟悉了一下云开发中多个集合表的关联方式,下面举个简单多关联的例子,废话少说上代码。
const result = await db.collection('Table_A').aggregate()
.lookup({
from: 'Table_B', // 关联Table_B表
let: {
b_id: '$_id' // 关联B表的_id字段
},
pipeline: $.pipeline()
// 关联条件,第一个为主结果集属性字段,第二个为let的属性字段
// 关于条件,有很多,可以参考数据库文档,结尾会附上链接
.match(
$.eq(['$a_id', '$$b_id'])
)
// 选择需要查询出关联b表的哪些字段,1查询,0不查,也可以在这里进行一些字段格式化之类的操作
.project({
b_name: 1
})
.done(),
// 输出到主结果集的别名
as: 'btableinfo',
})
.lookup({
…
// 多个集合关联依次类推,跟上面写法一样,注意关联条件字段名必须为结果集中的字段名
})
.end()
云数据库开发文档直通车:云数据库开发文档