如何解决如何使用mongo比较值和分组?
我正在尝试检查两个日期是否相等,然后根据日期对另一个结果进行分组。
{"creationDate": "2021/3/19","_id": "60549366ab4eb00aa1ed2fd9","avgPower": 8241,"WaterConsumption": 22},{"creationDate": "2021/3/19","_id": "605493f4ab4eb00aa1ed2fda",{"creationDate": "2021/2/17","_id": "60549433ab4eb00aa1ed2fdb","avgPower": 4300,"WaterConsumption": 32,}
我能够使用如下例所示的字符串进行聚合。这是我所能进行的最远的聚合。
let dateTwo = await Measure.aggregate([
{$match: {creationDate: "2021/3/19"}},<=======
{$group: {_id: "$user",total: {$sum: "$WaterConsumption"}}}
]);
代码应该做什么:
let dateTwo = await Measure.aggregate([
{$match: {creationDate: ==>Check if the dates are equal<==}},{$group: {_id: "$user",total: {$sum: "$WaterConsumption"}}}
]);
预期结果
{"creationDate": "2020/3/19","_id": "someID","WaterConsumption": 44}
如何声明一个表达式来检查 creationDates 是否相等?我真的很挣扎。我可以使用 JavaScript 做到这一点,但我不知道如何使用 mongo 做到这一点。
解决方法
希望这就是您想要弄清楚的。如果不是,请尝试重新表述您的问题。
db.collection.aggregate({
$match: {
creationDate: "2021/3/19"
}
},{
$group: {
_id: "$creationDate",ids: {
$push: "$_id"
},total: {
$sum: "$WaterConsumption"
}
}
},{
$project: {
"creationDate": "$_id","_id": "$ids","WaterConsumption": "$total"
}
})
,
我使用以下行解决了问题:
let dateTwo = await Measure.aggregate([
{$group: {_id: {creationDate: "$creationDate"},total: {$sum: "$WaterConsumption"}}}
])
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。