美文网首页
云数据库多集合查询

云数据库多集合查询

作者: 泡杯感冒灵 | 来源:发表于2021-01-16 14:48 被阅读0次
有时候,我们需要查询多个集合,并把查询结果一起返回。例如当我们点击某篇博客的时候,我们不但要查询博客的内容详情, 还要查询博客的相关评论列表
  app.router('detail',async(ctx,next) => {
    let blogId = event.blogId
    // 详情查询
    //  let detail = await blogCollection.where({
    //   _id:blogId
    // }).get().then((res) => {
    //   return res.data
    // })

    // 评论查询
    // const countResult = await db.collection('blog-comment').count()
    // const total = countResult.total  // 集合里的数据条数
    // let commentList = {
    //   data:[]
    // }
    // if(total > 0){
    //   // 查询的次数
    //   const batchTimes = Math.ceil(total/MAX_LIMIT)

    //   const tasks = []
    //   for(let i = 0;i < batchTimes; i++){
    //     let promise = db.collection('blog-comment')
    //                   .skip(i*MAX_LIMIT)
    //                   .limit(MAX_LIMIT)
    //                   .where({
    //                     blogId
    //                   })
    //                   .orderBy('createTime','desc')
    //                   .get()
    //     tasks.push(promise)              
    //   }
    //   if(tasks.length > 0){
    //     commentList = (await Promise.all(tasks)).reduce((acc,cur)=>{
    //       return {
    //         data:acc.data.concat(cur.data)
    //       }
    //     })
    //   }
    // }
    // ctx.body = {
    //   commentList,
    //   detail
    // }

    // 聚合查询实现连表查询
    const blog = await blogCollection.aggregate().match({
      _id:blogId
    }).lookup({
      from:'blog-comment',
      localField:'_id',
      foreignField:'blogId',
      as:'commentList'
    })
    .end()
    ctx.body = blog
  })

  const wxContext = cloud.getWXContext()
  app.router('getListByOpenId',async(ctx,next) =>{
    ctx.body = await blogCollection.where({
      _openid:wxContext.OPENID
    }).skip(event.start).limit(event.count)
    .get().then((res) => {
      return res.data
    })
  })
  return app.serve()
}

相关文章

  • 云数据库多集合查询

    有时候,我们需要查询多个集合,并把查询结果一起返回。例如当我们点击某篇博客的时候,我们不但要查询博客的内容详情, ...

  • mongodb命令行操作

    查询数据库 show dbs 切换数据库dbtest use dbtest 查询库的集合collection sh...

  • 小程序入门学习08--云开发01

    1 数组查询1)新建带云开发功能的小程序2)点击云开发->数据库->新建集合->添加几条记录 index.json...

  • mongodb常用命令

    一、数据库 创建数据库 删除数据库 二、集合 创建集合 删除集合 三、文档 插入文档 删除文档 更新文档 四、查询...

  • MongoDB常用复杂查询

    1 联集合查询 联集合查询可以实现类似SQL数据库的多表查询。 我们发现如果直接在$project上直接增加,会导...

  • 常用命令

    查询某个数据库的所有集合db.getCollectionNames();查询某个集合的20条数据db.yarn_r...

  • django数据查询

    数据查询要从数据库检索数据,首先要获取一个查询集**(QuerySet),查询集表示从数据库获取的对象集合,它可以...

  • C#沉淀-Linq的使用

    Linq 可以轻松的查询对象集合。Linq代表语言集成查询,是.NET框架的扩展,支持从数据库、程序对象的集合以及...

  • MongoDB常用命令(2)

    1、创建数据库 2、创建集合 3、查询 4、修改 5、删除 6、查看集合 7、查看数据库 8、插入数据 9、批量更...

  • 9、Django_ORM_数据的创建以及增删改查

    一、查询集QuerySet 什么是查询集?查询集:从数据库查询得到的模型对象集合QuerySet,是一个列表 什么...

网友评论

      本文标题:云数据库多集合查询

      本文链接:https://www.haomeiwen.com/subject/btsnaktx.html