MongoDB: 如何获取每个类别的最大值和最小值?我收到空值
MongoDB: how to get max and min values for every category? I received null value
我需要为每一行找到最大值和最小值 flight_time。
那是我的 collection 的一部分(只有两份文件,但我有 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。
你有什么建议吗?我该如何改变?
提前致谢
您可以将 $max
和 $min
作为 $group
阶段的一部分。
尝试:
db.collection.aggregate([
{
"$group": {
_id: "$line_name",
max_time: {
$max: "$flight_time"
},
min_time: {
$min: "$flight_time"
}
}
}
])
我需要为每一行找到最大值和最小值 flight_time。
那是我的 collection 的一部分(只有两份文件,但我有 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。
你有什么建议吗?我该如何改变?
提前致谢
您可以将 $max
和 $min
作为 $group
阶段的一部分。
尝试:
db.collection.aggregate([
{
"$group": {
_id: "$line_name",
max_time: {
$max: "$flight_time"
},
min_time: {
$min: "$flight_time"
}
}
}
])