sql >> Databáze >  >> NoSQL >> MongoDB

Nejlepší způsob, jak číst a aktualizovat dokumenty mongodb pomocí pymongo

Chcete "rozhraní API pro hromadné operace" z MongoDB. Většinou představen s MongoDB 2.6, takže pádný důvod k upgradu, pokud v současné době nemáte.

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

Mnohem lepší, protože neposíláte „každý“ požadavek na server, ale pouze jednou z 1000 požadavků. "Hromadné API" to ve skutečnosti trochu řeší za vás, ale ve skutečnosti to chcete "spravovat" trochu lépe a nespotřebovávat příliš mnoho paměti ve vaší aplikaci.

Cesta do budoucnosti. Použijte to.



  1. Použití mongo s FLASK a python

  2. Odeberte pole ze všech prvků v poli v mongodb

  3. Spočítejte prvky pole, které odpovídají podmínce

  4. Podporuje Spring Data Redis (1.3.2.RELEASE) JedisSentinelPool of jedis?