如果我想从集合的所有记录中搜索最高温度,那么下面的查询是完美的

 db.posts3.aggregate([{$group:{ _id: "maximum",Temperature:{$max:"$Temperature"}}}]);


如果我想搜索最近两天的最高温度,mongo查询将无法正常工作。

    db.posts3.aggregate([{$group:
         { _id: "maximum",
            {"time":{"$gt": ISODate("2019-10-12T11:25:06.156Z"),
                      "$lt":ISODate("2019-12-12T11:25:07.156Z")}
            },
                Temperature:{$max:"$Temperature"}

          }
       }
    ]);

最佳答案

将时间搜索移至$match管道可能会解决您的问题:

db.posts3.aggregate([
  {$match:
    {"time": {
      "$gt": ISODate("2019-10-12T11:25:06.156Z"),
      "$lt":ISODate("2019-12-12T11:25:07.156Z")}
    }
  },
  {$group:
     {
       _id: "maximum",
       Temperature:{$max:"$Temperature"}
     }
  }
]);

关于mongodb - MongoDB查询找到最近两天的最大值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/59333379/

10-09 09:10