这是$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 }
答案 0 :(得分:0)
在汇总查询中使用_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);
})
});
。
所以可以试试
lastIndexOf(',')
答案 1 :(得分:0)