Soh*_*ham 1 upsert mongodb mongodb-query
I have a document in collection testcol in MongoDB like this :
{
_id:111,
"xxx":"aaa",
"yyy":"bbb"
}
Run Code Online (Sandbox Code Playgroud)
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 can use the $exists operator in your query to only match the document if the yyy field is present:
db.testcol.update({_id: 111, yyy: {$exists: true}}, {$set: {yyy: 'ccc'}})
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8502 次 |
| 最近记录: |