PyMongo获取分片群集索引的所有值

时间:2018-11-06 14:11:53

标签: mongodb pymongo sharding

我有一个分片集群和索引信息:

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()函数而不提供分片键似乎很昂贵。

0 个答案:

没有答案