游标上的Pymongo查询



我有一个很大的集合(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'}) 

那么,有没有一种方法可以查询光标呢?

光标不存储文档。它本质上是指向服务器上的结果集的指针。驱动程序一次检索一批文档,并在获取下一批之前将每个批转发给应用程序。

驱动程序或服务器中也没有回放光标(或向前跳过(的功能。必须按顺序检索文档。

因此,对光标唯一支持的操作是一次按顺序读取结果集中的所有文档。

如果要对数据执行多次传递,则需要将其存储在应用程序中或发出多个查询(或者让单个查询生成所需的所有数据(。

您可以找到一个库,用于在应用程序过程中筛选结果。例如,Mongoid通过嵌入匹配来实现这一点。

最新更新