如何解决如何在mongodb中执行分组,例如lodash chain和groupby
[{ key: '00001',amount: 135,request: [ false,false ] }]
我想检查请求是否包含某些值。我有可能执行此mongoDB聚合吗?到目前为止,我只能将数据分组为... 我正在使用猫鼬
$group: {
_id: "$key",name: { $first: "$request" },count: { $sum: 1 },totalValue: { $sum: "$amount" },},
示例文档
[{ request: false,key: '00001',amount: 17,__v: 0 },{ request: false,_id: 5f536fb1b05c47f7d87acb8d,key: '00002',amount: 41,_id: 5f536fb1b05c47f7d87acb8e,amount: 29,_id: 5f536fb1b05c47f7d87acb8f,amount: 312,{ request: true,_id: 5f536fb1b05c47f7d87acb90,amount: 120,__v: 0 }]
谢谢!
解决方法
您可以尝试
-
$group
在请求字段中推送请求 -
$match
使用$anyElementTrue
检查条件
db.collection.aggregate([
{
$group: {
_id: "$key",request: { $push: "$request" },count: { $sum: 1 },amount: { $sum: "$amount" }
}
},{
$match: {
$expr: {
$eq: [false,{ $anyElementTrue: "$request" }]
}
}
}
])
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。