MongoDB集团与项目
我试图选择一个字段的最大值以及它发生的时间MongoDB集团与项目,mongodb,mongodb-query,aggregation-framework,Mongodb,Mongodb Query,Aggregation Framework,我试图选择一个字段的最大值以及它发生的时间 db.temperaterdata.aggregate([ { $match: { $and: [ { "organization_id": 37 }, { "r
db.temperaterdata.aggregate([
{
$match: {
$and: [
{ "organization_id": 37 },
{
"resulttime":{
$gte:'2020-05-01 00:00',
$lte:'2020-05-29 23:59'
}
}
]
}
},
{
"$group": {
"_id": "$userid",
maxTemperature: { $max: "$temperature"},
minTemperature: { $min: "$temperature"}
}
},
{
"$project": {
"resulttime":1,
maxTemperature:1,
minTemperature:1
}
}
]);
但是,最高/最低温度出现的时间没有显示。结果如下:
{ "_id" : 233, "maxTemperature" : 100.67, "minTemperature" : 98.56 }
{ "_id" : 256, "maxTemperature" : 100.67, "minTemperature" : 98.56 }
{ "_id" : 263, "maxTemperature" : 100.67, "minTemperature" : 98.56 }
任何帮助都将不胜感激。您需要通过
userId+temperature
订购,并使用/operators获取max/min文档
请尝试以下查询:
db.temperaterdata.aggregate([
{
"$match": {
"organization_id": 37,
"resulttime": {
"$gte": "2020-05-01 00:00",
"$lte": "2020-05-29 23:59"
}
}
},
{
"$sort": {
"userid": 1,
"temperature": 1
}
},
{
"$group": {
"_id": "$userid",
"maxTemperature": {
"$last": "$$ROOT"
},
"minTemperature": {
"$first": "$$ROOT"
}
}
},
{
"$project": {
"maxresulttime": "$maxTemperature.resulttime",
"minresulttime": "$minTemperature.resulttime",
"maxTemperature": "$maxTemperature.temperature",
"minTemperature": "$minTemperature.temperature"
}
}
])
您能否提供一个
temperaterdata
{“\u id”:ObjectId(“5eb9495ae1d57b7b90c0fb15”),“userid”:158,“温度”:“98.56”,“结果时间”:“2020-05-11 18:17:21”,“插入时间”:“5/11/2020 18:17:22”,“组织id”:1}