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

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

云数据库开发文档直通车:云数据库开发文档

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章