PyMongo

Update Operators

  • The syntax is identical to update documents between Mongo shell and Pymongo

    • Note that Pymongo uses a dictionary as a document in MongoDB.

    • Warn: Update operators must be written with ' or " , e.g., '$pull‘

 collection.update_one( { 'last_name': ‘Kim' }, { '$set': { 'money' : 1000000 } } )
  • All operators of MongoDB are available in PyMongo

  • $set, $unset, $inc, $push, $each, $addToSet, $pop, $pull, $slice, etc...

  • update_one: Updates a single document within the collection based on the query.

  • update_many: Updates multiple documents within the collection based on the query.

collection.update_one(<query>, <update>[, <options>])
collection.update_many(<query>, <update>[, <options>])

collection.update(<query>, <update>[, <options>]) # Deprecated

Operators

  • Two ways to manipulate values in arrays.

    • By position

    • Position operator (the $ character)

      • When we don’t know what index of the array to modify.

      • Updates only the first match.

    • Example

collection.update_one({<query>}, {"$inc" : {“comments.0.like” : 1}})
collection.update_many({<query>}, {"$inc" : {“comments.$.like” : 1}})
  • Upsert

    • If upsert is True and no documents match the filter, perform an insert.

collection.update_one(< filter >, < update >, upsert=True)
collection.update_many(< filter >, < update >, upsert=True)

Last updated