Bạn muốn có "API Hoạt động Hàng loạt" từ MongoDB. Hầu hết được giới thiệu với MongoDB 2.6, vì vậy lý do thuyết phục để nâng cấp nếu bạn hiện chưa nâng cấp.
bulk = db.coll.initialize_ordered_bulk_op()
counter = 0
for record in coll.find(snapshot=True):
# now process in bulk
# calc value first
bulk.find({ '_id': record['_id'] }).update({ '$set': { 'field': newValue } })
counter += 1
if counter % 1000 == 0:
bulk.execute()
bulk = db.coll.initialize_ordered_bulk_op()
if counter % 1000 != 0:
bulk.execute()
Tốt hơn nhiều vì bạn không phải gửi "mọi" yêu cầu đến máy chủ, chỉ một lần trong mỗi 1000 yêu cầu. "Bulk API" thực sự sắp xếp điều này cho bạn phần nào, nhưng thực sự bạn muốn "quản lý" điều này tốt hơn một chút và không tiêu tốn quá nhiều bộ nhớ trong ứng dụng của mình.
Con đường của tương lai. Sử dụng nó.