云函数连表查询语句问题?
发布于 5 年前 作者 huangtao 12468 次浏览 来自 问答

有两张表 ,一个是问题表,一个是收藏表,怎么在查询的时候查出这个问题表里用户是否收藏过,查询要做分页的

4 回复

lookup 连起来就可以。

let OPENID = '用户 OpenID';
let count = 20; // 获取数据数量
let page = 1; // 获取数据的页面号
// 文章表为:articles,收藏表为:saves。
let res = await db.collection("saves").aggregate().project({ _id: 0 })
    .match({ _openid: OPENID }).limit(count).skip((page - 1) * count)
    .lookup({
      from'articles',
      localField: '_article',
      foreignField: '_id',
      as'list'
    })
    .replaceRoot({
      newRoot: $.mergeObjects([ $.arrayElemAt(['$list'0]), '$$ROOT' ])
    })
    .project({ list: 0 })
    .end();

1、在云函数中用lookup实现关联查询;

2、最好改表结构:表

question:{

makrs:[‘openid1’,‘openid2’]

}

回到顶部