mongodb コレクションからすべての _id を抽出する最良の方法は何ですか? 私はmongodbを操作するためにpymongoを使用しています。次のコード:
for item in db.some_collection.find({}, {'_id': 1}):
# do something
すべてのコレクションを反復処理するには時間がかかります。必要なのは _id 値だけで、それらはすべてメモリに収まる必要があります。このコードがすぐに完了しないのはなぜですか?
使用distinct
:
some_collection.distinct('_id')
In [5]: c = pymongo.connection.Connection('127.0.0.1')
In [6]: c['test']['test'].insert({'a': 2})
Out[6]: ObjectId('5159c8e9d286da0efccb7b70')
In [7]: c['test']['test'].insert({'a': 3})
Out[7]: ObjectId('5159c8ecd286da0efccb7b71')
In [8]: c['test']['test'].insert({'a': 5})
Out[8]: ObjectId('5159c8edd286da0efccb7b72')
In [9]: c['test']['test'].distinct('_id')
Out[9]:
[ObjectId('5159c8e9d286da0efccb7b70'),
ObjectId('5159c8ecd286da0efccb7b71'),
ObjectId('5159c8edd286da0efccb7b72')]