【发布时间】:2020-08-10 03:45:54
【问题描述】:
我目前正在尝试学习 MongoDB,但我是在 python 上做的。我有两张数据,我正在处理。 Sample data 。这不是完整的数据,而只是我正在处理的数据的一部分。实际数据的行数过多。
正如您在数据中看到的,我在表格 1 - 航班和表格 2 - 航空公司中有一个类似的列,即“OP_UNIQUE_CARRIER”。我想根据这些值聚合并在“航班”集合中创建一个新列,并输出一个名为“newairinfo”的新集合。这些集合(航班和航空公司)都在名为 'air' 的 db 下。
这是我的代码:
import pymongo
from pymongo import MongoClient
import pprint
client = MongoClient("localhost", 27017);
db = client.air
outputOrder = [("DAY_OF_WEEK", pymongo.DESCENDING), ("ARR_DELAY", pymongo.ASCENDING), ("TAIL_NUM", pymongo.DESCENDING), ("AIR_TIME", pymongo.ASCENDING)]
airlinescollection = db.airlines
flightcollection = db.flights
flightcollection.aggregate([
{
'$lookup': {
'from': 'airlines',
'localField': 'OP_UNIQUE_CARRIER',
'foreignField': 'OP_UNIQUE_CARRIER',
'as': 'airline'
}
}, {
'$out': 'newairinfo'
}
])
results=flightcollection.find().sort(outputOrder).limit(10)
for result in results:
print(result)
我已经尝试过这段代码,但它总是在最后抛出空结果。我已经根据聚合的 MongoDB 文档尝试了此代码,$lookup,$out 但它仍然是一样的。
请告诉我我可以做些什么来纠正它。
【问题讨论】:
标签: python-3.x mongodb aggregate