我试图在mongo数据库中运行aggregation
,但是在mongo shell和通过PyMongo遇到了一些奇怪的行为。这是我的最小脚本:
query = [
{
'$lookup': {
'from': 'rightcollection',
'localField': 'query',
'foreignField': 'query',
'as': 'missing_queries'
}
},
{
'$match': {
'missing_queries': {'$eq': []}
}
},
{
'$project': {
'_id': 1,
'query': 1,
}
}
]
db = mongo_client['test']
cursor = db['leftcollection'].aggregate(query, allowDiskUse=True)
for doc in cursor:
print(doc)
当我在jupyter笔记本中运行此脚本时,将打印前101个文档,然后将其挂起一会儿(例如一分钟或更长时间)。然后打印其余部分。我的左集合有20,000条记录,右集合有11,000多个文档。我不知道发生了什么。有什么办法吗?