收藏
回答

云开发数据查询问题请教?

数据库结构:

我想查询满足以下条件:

1、查找所有 goods 数组下的_id等于“2a0398605f0ffe5100016fa0427f3c67”的数据

2、把查询到的这些数据的quantity字段值进行总和相加,得到这个总和。

想了很久没有想出来,望得到指导,谢谢!

回答关注问题邀请回答
收藏

3 个回答

  • notfound🥶
    notfound🥶
    2020-07-16
    let res = await db.collection('xxx')
            .aggregate()
            .match({
                _id: 'f4.....c7a' //这条数据的_id
            })
            .unwind({
                path: '$goods'
            })
            .addFields({
                            //quantity字段的总和
                quantityTotal: $.sum('$quantity') 
            })
            .match({
                            //goods下面的_id
                'goods._id''2a0398605f0ffe5100016fa0427f3c67'
            })
                    .end()
    
    2020-07-16
    有用 1
    回复 1
    • 汪少伟
      汪少伟
      2020-07-16
      谢谢回复,解决了
      2020-07-16
      回复
  • Mr.Zhao
    Mr.Zhao
    2020-07-16
    db.collection('test')
    .aggregate()
    .match({
      _id: 'TmHab2NCFhpVcETxWYPyHWLto8aHiUmduseSalwEU6TqGdWm',
    })
    .project({
      goods: $.filter({
        input: '$goods',
        as: 'item',
        cond: $.eq(['$$item._id', '2a0398605f0ffe5100016fa0427f3c67'])
      })
    })
    .unwind('$goods')
    .replaceRoot({
       newRoot: '$goods'
    })
    .group({
      _id: null,
      totalPrice: $.sum('$quantity')
    })
    .end()
    
    2020-07-16
    有用 1
    回复 1
    • 汪少伟
      汪少伟
      2020-07-16
      谢谢回复,解决了
      2020-07-16
      回复
  • z.song
    z.song
    2020-07-16

    聚合算数操作解下 https://developers.weixin.qq.com/miniprogram/dev/wxcloud/reference-sdk-api/database/command/aggregate/AggregateCommand.add.html

    2020-07-16
    有用
    回复 1
    • 汪少伟
      汪少伟
      2020-07-16
      我不是要某一条的几个字段相加,是要所有记录的满足条件的goods quantity 字段相加
      2020-07-16
      回复
登录 后发表内容
问题标签