我试图检查两个日期是否相等,然后根据该日期分组另一个结果。
{"creationDate": "2021/3/19",
"_id": "60549366ab4eb00aa1ed2fd9",
"avgPower": 8241,
"WaterConsumption": 22},
{"creationDate": "2021/3/19",
"_id": "605493f4ab4eb00aa1ed2fda",
"avgPower": 8241,
"WaterConsumption": 22},
{"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"
}
})