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}