I have a document in collection testcol in MongoDB like this :
{
_id:111,
"xxx":"aaa",
"yyy":"bbb"
}
I want to update the field yyy in the document, if the field is found then update it and if the field is not found then don't do anything.
When I am running my mongo db update command like db.testcol.update({_id:0},{$set:{"zzz":"ccc"}},{upsert: false}). Intentionally I gave the field as "zzz" in the update command so that it shouldn't do anything. But when I run the above update command, it inserted the new field "zzz" in the above document although upsert was given false. I know upsert will not/will insert document and not field , but since I am new to MongoDB I was just giving it a try. Can anyone please let me know how to approach this issue?
You are using upsert wrong. Please see mongo's docs here
If upsert is true and no document matches the query criteria, update() inserts a single document. The update creates the new document. If upsert is true and there are documents that match the query criteria, update() performs an update.