【问题标题】:MongoDB: how to get max and min values for every category? I received null valueMongoDB:如何获取每个类别的最大值和最小值?我收到空值
【发布时间】:2020-04-26 20:21:07
【问题描述】:

我需要找到每条线路的最大和最小飞行时间。

这是我收藏的一部分(它只有两个文件,但我有 20 个):

db.myflights.insert([
//1
{
    start_time: new Date("2020-05-18T06:15:00Z"),
    land_time: new Date("2020-05-18T07:30:00Z"),
    flight_time: 1.25, 
    passengers: "90",
    line_name: "WizzAir"
},
//2
{
    start_time: new Date("2020-06-18T07:30:00Z"),
    land_time: new Date("2020-06-18T09:30:00Z"),
    flight_time: 2, 
    passengers: "111",
    line_name: "Lufthansa"
}
]) 

我试过了:

db.myflights.aggregate([
    {"$group" : {_id:"$line_name"}},

    {
    $addFields:
    {"max_time": {$max: "$flight_time"}  }
            },
    {
    $addFields:
    {"min_time": {$min: "$flight_time"} }
            }

])

我在 max/min_time 中都收到了 null。

你有什么建议可以改变吗?

提前致谢

【问题讨论】:

    标签: mongodb group-by null max min


    【解决方案1】:

    您可以将$max$min 作为$group 阶段的一部分。

    试试:

    db.collection.aggregate([
      {
        "$group": {
          _id: "$line_name",
          max_time: {
            $max: "$flight_time"
          },
          min_time: {
            $min: "$flight_time"
          }
        }
      }
    ])
    

    MongoPlayground

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-11-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-11-26
      • 2021-12-04
      • 2010-09-16
      相关资源
      最近更新 更多