先附上官方文档
主要使用的是lookup,分为相等匹配和自定义连接条件、拼接子查询,难的是第二种查询方式
第一种
lookup({
from: <要连接的集合名>,
localField: <输入记录的要进行相等匹配的字段>,
foreignField: <被连接集合的要进行相等匹配的字段>,
as: <输出的数组字段名>
})
第二种
lookup({
from: <要连接的集合名>,
let: { <变量1>: <表达式1>, ..., <变量n>: <表达式n> },
pipeline: [ <在要连接的集合上进行的流水线操作> ],
as: <输出的数组字段名>
})
注意lookup只能用在云函数,小程序端不能用,好像是权限不够
附上我写的一个第二种查询方式的云函数,注意到$_id和$status是activity集合里面的字段,小程序云开发采用的数据库像是mongodb一样的json格式的
提前写好
const db=cloud.database()
const _=db.command
const $=db.command.aggregate