如何在另一个查询中有效地包含MongoDB游标的结果?

时间:2017-08-14 19:52:28

标签: python mongodb

假设我有一个MongoDB集合,我在它上面运行两个查询,A和B.两个都返回集合中文档的索引列表。我想只得到A和B的结果中的那些记录,即集合的交集。

pymongo的一个天真的实现将是这样的:

cursor_result_A = db.collection.find(A)
result_A = [x for x in cursor_result_A]
cursor_result_B = db.collection.find({"$and":[{"_id":{"$in":result_A}}, B]})

然而,这种方法让我首先将第一个查询的所有结果从数据库拉到Python,然后在第一个查询中将其发回。这是非常低效的。

如何更有效地完成工作?

0 个答案:

没有答案