我有一个分片集群和索引信息:
client.test_db.test_collection.index_information()
如下:
{'_id_': {'key': [('_id', 1)],
'ns': 'test_db.test_collection',
'v': 2},
'test_id_hashed': {'key': [('test_id', 'hashed')],
'ns': 'test_db.test_collection',
'v': 2}}
我需要遍历集合中的所有文档:
for doc in client.test_db.test_collection.find({}):
do_something(doc)
但是,由于查询需要仔细查看所有分片才能找到每个文档,因此它似乎很慢。我相信,如果我可以按ID遍历每个文档,这样会更快,因为它已被索引,但是我似乎找不到一种快速的方法来检索除以下以外的所有ID值:
ids = []
for doc in client.test_db.test_collection.find({}):
ids.append(doc['test_id'])
是否有更好(更快)的方法来获取索引ID的值列表?由于我有分片群集,因此调用find()
函数而不提供分片键似乎很昂贵。