$max聚合未显示我想要的输出



这是$max的更新版本。我已经尝试了您的此代码。

db.contact.aggregate([
   {$sort: {machine_Id: 1, date:1}},
   {$group:{
      _id: '$machine_Id',
      max_air_Temp: {$max:"$air_Temp"}
     }
   }
  ], function(err, meibanlist) {
      if (err || !meibanlist ) console.log("Record not found");
      else meibanlist.forEach (function(machine_Id){
          console.log(machine_Id);
      })
});

但是当我在MongoDB中运行它时,它给了我:

{ _id: 5, max_air_Temp: 819 }
{ _id: 857, max_air_Temp: 121 }
{ _id: 52, max_air_Temp: 146 }
{ _id: 67, max_air_Temp: 300 }
{ _id: 655, max_air_Temp: 84 }
{ _id: 15, max_air_Temp: 844 }
{ _id: 363, max_air_Temp: 861 }
{ _id: 717, max_air_Temp: 623 }
{ _id: 189, max_air_Temp: 639 }
{ _id: 346, max_air_Temp: 563 }
{ _id: 470, max_air_Temp: 804 }
{ _id: 917, max_air_Temp: 697 }
{ _id: 167, max_air_Temp: 438 }
{ _id: 4, max_air_Temp: 467 }

但是当我尝试这段代码时:

db.contact.aggregate([{$group: {_id: "machine_Id", max: {$max: "$air_Temp"}}}], 
  function(err, meibanlist) {
    if (err || !meibanlist) console.log("Record not found");
    else meibanlist.forEach (function(machine_Id){
      console.log(machine_Id);
    })
  });

它向我展示了这个输出:这个输出与我想要的更相似,因为它只显示一个输出,但我希望'machine_id'显示确切的 id 而不是单词 machine_id .您知道如何编辑此集吗?

输出:

{ _id: 'machine_Id', max: 997 }

在聚合查询中使用_id: '$machine_Id'而不是_id: 'machine_Id'

db.contact.aggregate([
   {$sort: {machine_Id: 1, date:1}},
   {$group:{
      _id: '$machine_Id',
      max_air_Temp: {$max:"$air_Temp"}
     }
   }
  ], function(err, meibanlist) {
      if (err || !meibanlist ) console.log("Record not found");
      else meibanlist.forEach (function(machine_Id){
          console.log(machine_Id);
      })
});

更新:根据您的新要求,您可能只需要一个输出,该输出air_Temp值最大,machine_id_id

所以可以试试

db.contact.aggregate([
   {$sort: {air_Temp: -1}},
   {$limit:1},
   {$project:{_id:"$machine_Id",max_air_Temp:"$air_Temp" }}
  ], function(err, meibanlist) {
        if (err || !meibanlist ) console.log("Record not found");
        else meibanlist.forEach (function(machine_Id){
           console.log(machine_Id);
     })
});

看看文档中的示例。

取代

_id: 'machine_Id',

_id: '$machine_Id',

相关内容

最新更新