【发布时间】:2021-07-17 11:07:27
【问题描述】:
我想要对其进行操作的大型集合(7300 万个条目)。首先,我想查询约 98% 的数据,然后对最后 2% 进行更大的操作。首先我做
query_cursor = collection.find({'score': {'$gt': threshold}})
返回查询的游标。将其写入列表并在列表上执行操作比我可以选择使用 fx 重新查询此游标要慢得多
query_cursor.find({'filename': 'abc'})
但是,因为我需要对其进行多次操作,所以不断地做是不可行的
query_cursor = collection.find({'score': {'$gt': threshold}, 'filename': 'abc'})
那么有没有办法在光标上查询?
【问题讨论】:
-
“但是,因为我需要对其进行多次操作,...”:在这种情况下,您可以使用聚合查询,它允许对它进行更复杂的操作输入收集数据。但是,您也可以对光标进行一些操作;见Cursor Methods。
-
这也适用于 python 和 Pymongo 吗?我尝试使用 Pymongo 中似乎没有实现的 .forEach 函数
-
根据pymongo.readthedocs.io/en/stable/api/pymongo/cursor.html,唯一的选择似乎是 .where 搜索,这可能很有用,但不是我真正想要的