MongoDB查询不会向我查询的字段显示值

时间:2018-03-26 18:40:00

标签: mongodb

是的,所以我试图查询找到前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

2 个答案:

答案 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}
])