小程序
小游戏
企业微信
微信支付
扫描小程序码分享
数据库结构:
我想查询满足以下条件:
1、查找所有 goods 数组下的_id等于“2a0398605f0ffe5100016fa0427f3c67”的数据
2、把查询到的这些数据的quantity字段值进行总和相加,得到这个总和。
想了很久没有想出来,望得到指导,谢谢!
3 个回答
加粗
标红
插入代码
插入链接
插入图片
上传视频
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()
你好,麻烦通过点击下方“反馈信息”按钮,提供出现问题的。
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()
聚合算数操作解下 https://developers.weixin.qq.com/miniprogram/dev/wxcloud/reference-sdk-api/database/command/aggregate/AggregateCommand.add.html
关注后,可在微信内接收相应的重要提醒。
请使用微信扫描二维码关注 “微信开放社区” 公众号
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()
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()
聚合算数操作解下 https://developers.weixin.qq.com/miniprogram/dev/wxcloud/reference-sdk-api/database/command/aggregate/AggregateCommand.add.html