【发布时间】:2021-08-14 07:29:32
【问题描述】:
我有这个收藏:
{ "_id" : { "carrier_nam" : "Alaska Airlines Inc.", "airport_nam" : "Kodiak, AK: Kodiak Airport" }, "value" : { "security2" : 3 } }
{ "_id" : { "carrier_nam" : "Alaska Airlines Inc.", "airport_nam" : "Santa Ana, CA: John Wayne Airport-Orange County" }, "value" : { "security2" : 29 } }
{ "_id" : { "carrier_nam" : "JetBlue Airways", "airport_nam" : "Baltimore, MD: Baltimore/Washington International Thurgood Marshall" }, "value" : { "security2" : 2 } }
{ "_id" : { "carrier_nam" : "ATA Airlines d/b/a ATA", "airport_nam" : "Denver, CO: Denver International" }, "value" : { "security2" : 5 } }
我需要获取security2 延迟的最大值并获取与carrier_nam 的最大值相关联的“airport_nam”值。
这个聚合结果让我得到了正确的答案,但不幸的是,我也无法打印 security2 发生必须在其中的“airport_nam”文件。
这是在没有“airport_nam”的情况下让我得到正确答案的聚合。
db.tmp2.aggregate([{ $group: { "_id": "$_id.carrier_nam", value: { $max: "$value" } } }
, { $out : "tmp22" }
])
这是结果(没有与我需要添加的嵌套 obj 键关联的“airport_nam”):
{ "_id" : "Northwest Airlines Inc.", "value" : { "security2" : 78 } }
{ "_id" : "Independence Air", "value" : { "security2" : 15 } }
{ "_id" : "AirTran Airways Corporation", "value" : { "security2" : 0 } }
为了更好地理解最终答案应该是这样的:
{ "_id" : "Northwest Airlines Inc.", "value" : { "security2" : 78 },"airport_nam" : "Kinston }
{ "_id" : "Independence Air", "value" : { "security2" : 15 } }
{ "_id" : "AirTran Airways Corporation", "value" : { "security2" : 0 },"airport_nam" : "Denver}
如何在不使用组的情况下将“airport_nam”添加到聚合最终答案中?
当前的结构让我得到了正确的答案,我只需要在她身边打印“airport_nam”嵌套字段。
感谢帮助者!
【问题讨论】:
标签: mongodb mongodb-query aggregation-framework