sql >> Database >  >> NoSQL >> MongoDB

De beste manier om mongodb-documenten te lezen en bij te werken met pymongo

U wilt de "Bulk Operations API" van MongoDB. Meestal geïntroduceerd met MongoDB 2.6, dus een dwingende reden om te upgraden als je dat nog niet hebt gedaan.

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

Veel beter omdat u niet "elk" verzoek naar de server stuurt, maar slechts één keer per 1000 verzoeken. De "Bulk API" regelt dit eigenlijk een beetje voor je, maar eigenlijk wil je dit een beetje beter "managen" en niet te veel geheugen in je app verbruiken.

Weg van de toekomst. Gebruik het.



  1. Node.js - Mongoose - Controleer of er een verzameling bestaat

  2. Wijzig een bestaand object in een array, maar behoud nog steeds de uniciteit van de sleutel

  3. Hoe kan ik meerdere documenten in mangoest bijwerken?

  4. jackson deserialiseer object met lijst van lente-interface