是的,所以我试着查询一下,找出五大海拔最高的飞机。我用了这
我得到了飞行前5高度的飞机名,然而,实际高度是未显示
有人知道为什么会这样吗?
我的代码:
db.planes.aggregate([
{$group:{_id:"$hex_id", altitude:{$max:"$altitude"}}},
{$sort:{altitude:-1}},
{$limit: 5}
])
编辑:发现替换$hex_id (与数据集中的flight_id相同)只显示了高度,但现在显示了航班号。所以我需要弄清楚如何让两人同时出现。现在就在做这个。
任何帮助都是非常感谢的。
样本数据集:
msg_dummy msg_type flight_id aircraft_id date time latitude longitude altitude ground_speed heading dummy1
MSG 1 AAL233 AC3558 20130911 74233
MSG 3 AAL233 AC3558 20130911 74234 29.19579 -80.97435 37975
MSG 3 AAL233 AC3558 20130911 74234 29.19458 -80.97398 37975
MSG 3 AAL233 AC3558 20130911 74237 29.18979 -80.97247 37975
MSG 4 AAL233 AC3558 20130911 74237 29.18979 -80.97247 37975 449 164 0
MSG 1 N192NC A170C8 20130911 74239
MSG 4 N192NC A170C8 20130911 74240 456 359 -64
MSG 4 N192NC A170C8 20130911 74241 456 359 -64
MSG 3 AAL233 AC3558 20130911 74242 29.17894 -80.96902 38000 449 164 0
MSG 4 AAL233 AC3558 20130911 74242 29.17894 -80.96902 38000 449 164 0
MSG 4 AAL233 AC3558 20130911 74242 29.17894 -80.96902 38000 449 164 0
MSG 1 AAL233 AC3558 20130911 74243 29.17894 -80.96902 38000 449 164 0
MSG 1 N192NC A170C8 20130911 74243 456 359 -64
MSG 4 N192NC A170C8 20130911 74244 457 359 -64
MSG 3 N192NC A170C8 20130911 74244 29.94985 -81.14469 41000 457 359 -64
MSG 3 AAL233 AC3558 20130911 74244 29.17494 -80.96773 38000 449 164 0
MSG 4 AAL233 AC3558 20130911 74244 29.17494 -80.96773 38000 449 164 0
MSG 4 N192NC A170C8 20130911 74244 29.94985 -81.14469 41000 457 359 -64
MSG 3 AAL233 AC3558 20130911 74245 29.17392 -80.96744 38000 449 164 0
MSG 4 N192NC A170C8 20130911 74245 29.94985 -81.14469 41000 457 359 -64
MSG 3 AAL233 AC3558 20130911 74245 29.17273 -80.96702 38000 449 164 0
MSG 3 AAL233 AC3558 20130911 74246 29.17173 -80.96671 38000 449 164 0
MSG 4 AAL233 AC3558 20130911 74246 29.17173 -80.96671 38000 449 164 0
MSG 4 AAL233 AC3558 20130911 74247 29.17173 -80.96671 38000 449 164 0
MSG 4 AAL233 AC3558 20130911 74247 29.17173 -80.96671 38000 449 164 0
MSG 3 AAL233 AC3558 20130911 74247 29.1681 -80.96558 38000 449 164 0
MSG 3 AAL233 AC3558 20130911 74248 29.1671 -80.96528 38000 449 164 0
MSG 4 AAL233 AC3558 20130911 74250 29.1671 -80.96528 38000 449 164 0
MSG 3 AAL233 AC3558 20130911 74251 29.16088 -80.96331 38000 449 164 0
MSG 3 AAL233 AC3558 20130911 74253 29.15666 -80.962 38000 449 164 0
MSG 4 N192NC A170C8 20130911 74254 29.94985 -81.14469 41000 457 359 -64
MSG 4 AAL233 AC3558 20130911 74255 29.15666 -80.962 38000 449 164 0
发布于 2018-03-26 10:51:03
db.planes.aggregate([
{$match:{"altitude":{$gte:0}}},
{$group:{_id:"$hex_id", altitude:{$max:"$altitude"}}},
{$sort:{rating:-1}},
{$limit: 5}
])
您可能缺少match
条件,除非您添加它,否则也会考虑空值,并且在排序时可能会到达顶部。甚至有可能在文档中没有特定的字段。
除非您提供JSON格式的示例数据,否则我无能为力。如果您正在使用MongoDB,您应该处理JSON/BSON格式。
发布于 2018-03-26 10:59:01
使用下面的代码
db.planes.aggregate([
{$match:{"altitude":{$gte:0}}},
{$group:{_id:"$_id", "altitude":{$first:"$altitude"}}},
{$sort:{altitude:-1}},
{$limit: 5}
])
https://stackoverflow.com/questions/49498436
复制