【发布时间】:2021-06-01 12:51:56
【问题描述】:
我有一个简单的管道并且在 MongoDB Compass 中运行良好,但是当我尝试使用 Pymongo 执行相同的管道时,我得到的文档数量较少。当我检查结果光标只有或限制 100 个文档时,但在 Compass 中我看到返回更多数据。我正在使用以下连接,但不确定我缺少什么。
预期的文档少于 200 个文档。
Python version: 3.7
Pymongo version: pymongo==3.11.3
db.collections.aggregate([
{
'$match': {
'subject': {
'$in': [
'1','2','3'
]
}
}
}, {
'$lookup': {
'from': 'schools',
'localField': 'locId',
'foreignField': 'locId',
'as': 'schools'
}
}, {
'$unwind': {
'path': '$schools',
'preserveNullAndEmptyArrays': True
}
}, {
'$unwind': {
'path': '$schools.schools',
'preserveNullAndEmptyArrays': False
}
}, {
'$match': {
'schools.appointmentDate': {
'$gte': datetime(2021, 3, 15, 0, 0, 0, tzinfo=timezone.utc),
'$lt': datetime(2021, 3, 16, 0, 0, 0, tzinfo=timezone.utc)
},
'schools.schools.appointmentStatus': {
'$in': [
'Scheduled'
]
}
}
}, {
'$group': {
'_id': '$subject',
'totalAppointments': {
'$sum': 1
}
}
}
])
我也在 mongo 查询中使用了{"$limit" : 10000},但对我没有帮助。
有人可以帮我检查一下吗?
谢谢
【问题讨论】:
-
将您的代码减少到仅需要的部分。删除 str(document),允许使用磁盘,指定一个简单的管道等。
标签: python-3.x mongodb pymongo-3.x