我期待創建一個mongodb查詢來更新一次文檔,以便它將設置幾個字段的值,並且如果已經有字段可用(其他字段不是設置)取消設置。MongoDB:updateOne查詢,設置未設置的值,如果存在
我做了這樣的:
db.collection('collectionName").find({"itemId": itemsDataArray[i].itemId }).updateOne(
{ "$unset" :
{
"field1": 1,
"field2": 1,
"field3": 1
}
},
{ "$set":
{
"field4" : "value",
"field5" : "value"
}
})
現在的問題是,如果field1,2或3是不存在的文件中,則查詢失敗設置字段4和5
有沒有我在mongo查詢中缺少的標誌? 請幫忙。
編輯:解決方案
db.collection('collectionName').find({"itemId": itemsDataArray[i].itemId }).updateOne(
{ "$unset" :
{
"field1": 1,
"field2": 1,
"field3": 1
},
"$set":
{
"field4" : "value",
"field5" : "value"
}
})
謝謝。問題是使用括號。 –