是的,所以我试图查询找到前5个最高海拔的飞机。我使用了this
我获得了飞行前5个高度的飞机名称,但实际高度为not displayed
任何人都有理论为什么会这样?
我的代码:
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
答案 0 :(得分:0)
db.planes.aggregate([
{$match:{"altitude":{$gte:0}}},
{$group:{_id:"$hex_id", altitude:{$max:"$altitude"}}},
{$sort:{rating:-1}},
{$limit: 5}
])
您可能错过了match
条件,除非您添加它,否则还会考虑空值,并且可能会在排序时遇到顶部。甚至可能存在文档中不存在特定字段的可能性。除非您提供JSON格式的示例数据,否则无法提供帮助。如果您正在使用MongoDB,则应该处理JSON / BSON格式。
答案 1 :(得分:0)
使用以下代码
db.planes.aggregate([
{$match:{"altitude":{$gte:0}}},
{$group:{_id:"$_id", "altitude":{$first:"$altitude"}}},
{$sort:{altitude:-1}},
{$limit: 5}
])