web-dev-qa-db-ja.com

パス「x」を更新すると、「x」で競合が発生します

このエラーは、アップサートアイテムを更新しようとしたときに発生します:Updating the path 'x' would create a conflict at 'x'

15
zored

フィールドは$set、または$setOnInsert。両方ではありません。

19
zored

アイテムの更新時に$set$unsetで同じキーを渡すと、そのエラーが発生します。

例えば:

const body = {
   _id: '47b82d36f33ad21b90'
   name: 'John',
   lastName: 'Smith'
}

MyModel.findByIdAndUpdate(body._id, { $set: body, $unset: {name: 1}})

// Updating the path 'name' would create a conflict at 'name'
2
RodrigoNOFX

PyMongoを使用してupdateクエリを実行しているときに同じ問題が発生しました。
私がやろうとしていたこと:


> db.people.update( {'name':'lmn'}, { $inc : { 'key1' : 2 }, $set: { 'key1' : 5 }})

ここで、key1の値を2つのMongoDB更新演算子から更新しようとしていることに注意してください。

これは基本的に、複数のMongoDB更新演算子同じキーの値を更新しようとすると発生します同じクエリ内。

更新演算子のリストは here で見つけることができます

0
saintlyzero