Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
$setOnInsert
El $setOnInsert operador de Amazon DocumentDB se utiliza para establecer el valor de un campo si se está insertando un documento, pero no tiene ningún efecto si el documento se está actualizando.
Parámetros
-
field: El campo que se va a configurar. -
value: el valor que se va a asignar al campo.
Ejemplo (MongoDB Shell)
En el siguiente ejemplo, se muestra el uso del $setOnInsert operador en Amazon DocumentDB. Crea un documento nuevo si el documento aún no existe, pero no tiene ningún efecto si el documento se está actualizando.
Crea documentos de muestra
db.users.insertOne({ _id: 1, name: "John Doe", age: 30 })
Ejemplo de consulta 1: Actualizar un documento existente
db.users.update( { _id: 1 }, { $set: { age: 31 }, $setOnInsert: { createdAt: new Date() } }, { upsert: true } )
Resultado 1
{ _id: 1, name: "John Doe", age: 31 }
El resultado muestra que el documento se actualizó, pero el createdAt campo NO se agregó porque el documento ya existía. El $setOnInsert operador solo se aplica al insertar documentos nuevos.
Ejemplo de consulta 2: Insertar un documento nuevo (parte superior)
db.users.update( { _id: 2 }, { $set: { name: "Jane Smith", age: 25 }, $setOnInsert: { createdAt: new Date() } }, { upsert: true } )
Salida 2
{ _id: 2, name: "Jane Smith", age: 25, createdAt: ISODate("2025-10-31T09:57:52.459Z") } }
Ejemplos de código
Para ver un ejemplo de código para usar el $setOnInsert comando, elija la pestaña del idioma que desee usar: