【发布时间】:2021-04-06 22:44:02
【问题描述】:
我在 MongoDb 中将数据保存为
{
"_id": "ObjectId(\"5fec31b6b9022035abbbf7cc\")",
"message": {
"date": "2020-12-30 13:20:26",
"time": "2020-12-30T07:50:26.000Z",
"ID": "005",
"P": 1.36
}
},
{
"_id": "ObjectId(\"5fec31b5b9022035abbbf7c2\")",
"message": {
"date": "2020-12-30 13:20:24",
"time": "2020-12-30T07:50:24.000Z",
"ID": "005",
"P": 1.5
}
},
{
"_id": "ObjectId(\"5fec31b0b9022035abbbf7b3\")",
"message": {
"date": "2020-12-30 13:20:19",
"time": "2020-12-30T07:50:19.000Z",
"ID": "005",
"P": 1.63
}
}
我想找到每分钟 P 值的平均值。 我试过Group result by 15 minutes time interval in MongoDb 但我在时间字段中遇到了错误。
db.pressure.aggregate([
{ "$group": {
"_id": {
"year": { "$year": "message.time" },
"dayOfYear": { "$dayOfYear": "message.time" },
"hour": { "$hour": "message.time" },
"interval": {
"$subtract": [
{ "$minute": "message.time" },
{ "$mod": [{ "$minute": "message.time"}, 1] }
]
}
},
"count": { "$sum": 1 }
}
}
])
{ "message" : "无法从 BSON 类型字符串转换为日期", “好”:0, “代码”:16006, "codeName" : "Location16006", “名称”:“MongoError” }
【问题讨论】:
-
将日期/时间值存储为 string 是一个设计缺陷。始终使用正确的
Date对象 - 然后您的聚合管道将起作用。
标签: node.js mongodb aggregation-framework