Cette erreur se produit lorsque j'ai essayé de mettre à jour l'élément upsert: Updating the path 'x' would create a conflict at 'x'
Le champ doit apparaître soit dans $set
, ou dans $setOnInsert
. Pas dans les deux.
Si vous passez la même clé dans $set
et en $unset
lors de la mise à jour d'un élément, vous obtiendrez cette erreur.
Par exemple:
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'
J'ai eu le même problème lors de l'exécution d'une requête de mise à jour à l'aide de PyMongo.
J'essayais de faire:
> db.people.update( {'name':'lmn'}, { $inc : { 'key1' : 2 }, $set: { 'key1' : 5 }})
Notez qu'ici j'essaye de mettre à jour la valeur de key1
de deux opérateurs de mise à jour MongoDB .
Cela se produit essentiellement lorsque vous essayez de mettre à jour la valeur d'une même clé avec plusieurs Opérateurs de mise à jour MongoDB dans la même requête.
Vous pouvez trouver une liste des opérateurs de mise à jour sur ici