MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Най-добрият начин за четене и актуализиране на mongodb документи с помощта на pymongo

Искате "API за групови операции" от MongoDB. Въведен предимно с MongoDB 2.6, така че убедителна причина да надстроите, ако в момента не сте го направили.

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()

Много по-добре, тъй като не изпращате "всяка" заявка към сървъра, а само веднъж на всеки 1000 заявки. „Груповият API“ всъщност подрежда това донякъде за вас, но наистина искате да „управлявате“ това малко по-добре и да не консумирате твърде много памет в приложението си.

Пътят на бъдещето. Използвайте го.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB Java драйвер, създаващ база данни и колекция

  2. Mongodb:избутва елемент към вложен масив, ако условието е изпълнено

  3. MongoDB forEach()

  4. Как да инициализирате колекция в Dockerized Mongo DB

  5. Преобразувайте MongoDBObject в JsValue