Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
$setOnInsert
L'$setOnInsertopérateur dans Amazon DocumentDB est utilisé pour définir la valeur d'un champ si un document est inséré, mais cela n'a aucun effet si le document est mis à jour.
Paramètres
-
field: Le champ à définir. -
value: valeur à attribuer au champ.
Exemple (MongoDB Shell)
L'exemple suivant illustre l'utilisation de l'$setOnInsertopérateur dans Amazon DocumentDB. Cela crée un nouveau document s'il n'existe pas déjà, mais cela n'a aucun effet si le document est mis à jour.
Création d'exemples de documents
db.users.insertOne({ _id: 1, name: "John Doe", age: 30 })
Exemple de requête 1 - Mettre à jour un document existant
db.users.update( { _id: 1 }, { $set: { age: 31 }, $setOnInsert: { createdAt: new Date() } }, { upsert: true } )
Sortie 1
{ _id: 1, name: "John Doe", age: 31 }
La sortie indique que le document a été mis à jour, mais le createdAt champ n'a PAS été ajouté car le document existait déjà. L'$setOnInsertopérateur ne s'applique que lors de l'insertion de nouveaux documents.
Exemple de requête 2 - Insérer un nouveau document (upsert)
db.users.update( { _id: 2 }, { $set: { name: "Jane Smith", age: 25 }, $setOnInsert: { createdAt: new Date() } }, { upsert: true } )
Produit 2
{ _id: 2, name: "Jane Smith", age: 25, createdAt: ISODate("2025-10-31T09:57:52.459Z") } }
Exemples de code
Pour afficher un exemple de code relatif à l'utilisation de la $setOnInsert commande, choisissez l'onglet correspondant à la langue que vous souhaitez utiliser :