First, find if a document matching query exists.
If so, update that document with the new data.
Otherwise, insert a new document into the database.
You can use "upsert" equal to true. Then the update query you run with "upsert" as true will do exactly what you want.
From MongoDb documentation:
db.collection.update( criteria, objNew, upsert, multi )
Arguments:
criteria - query which selects the record to update;
objNew - updated object or $ operators (e.g., $inc) which manipulate the object
upsert - if this should be an "upsert"; that is, if the record does not exist, insert it
multi - if all documents matching criteria should be updated
http://www.mongodb.org/display/DOCS/Updating
Example:
db.test.update({"x": "42"}, {"$set": {"a": "21"}},True)
#True => Upsert is True
See "update" documentation here :
http://api.mongodb.org/python/current/api/pymongo/collection.html
http://api.mongodb.org/python/current/api/pymongo/collection.html#pymongo.collection.Collection.update
Set upsert=True
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With