El método findOneAndReplace() reemplaza el primer documento coincidente según los criterios de selección proporcionados. De forma predeterminada, este método devuelve el documento original. Para devolver el documento de reemplazo, establezca el valor de la opción returnNewDocument en verdadero. Toma ocho parámetros, el primer parámetro es el criterio de selección y el segundo parámetro es el documento de reemplazo. Y los demás son opcionales. Con este método también puede reemplazar documentos incrustados . También puede utilizar este método en transacciones de varios documentos.
Sintaxis:
db.Collection_name.findOneAndReplace(
criterio_selección:<documento>,
reemplazo: <documento>,
{
proyección: <documento>,
ordenar: <documento>,
maxTimeMS: <número>,
upsert: <booleano>,
devolverNuevoDocumento: <booleano>,
colación: <documento>
})
Parámetros:
- El primer parámetro es el criterio de selección para reemplazar el documento con el nuevo documento.
- El segundo parámetro es el documento de reemplazo.
- El tercer parámetro es opcional.
Parámetros opcionales:
- proyección: El tipo de este parámetro es documento. Determina qué campos se devuelven a los documentos coincidentes. Este documento lleva:
{ field1: <value1>, field2: <value2> ... }
Aquí, si el valor del campo es 1/verdadero , especifica la inclusión del campo, o si el valor del campo es 0/falso , especifica la exclusión del campo.
- sort: Determina qué documento modificará la operación si la consulta selecciona varios documentos. findOneAndReplace() reemplazará el primer documento en el orden de clasificación especificado por este argumento. El tipo de este parámetro es documento.
- maxTimeMS: El tipo de este parámetro es número. Especifica el límite de tiempo en milisegundos dentro del cual debe completarse la operación. Lanza un error si se excede el límite de tiempo.
- upsert: el valor predeterminado de este parámetro es falso. Si el valor de esta opción se establece en verdadero y ningún documento coincide con la consulta de filtro dada, entonces este método crea un nuevo documento a partir del parámetro de reemplazo y devuelve un valor nulo (después de insertar un nuevo documento) a menos que el valor de la opción returnNewDocument se establezca en verdadero . O si el valor de esta opción upsert se establece en verdadero, entonces este método reemplaza el documento que coincide con la consulta de filtro dada con el documento de reemplazo.
- returnNewDocument: El tipo de este parámetro es booleano. De forma predeterminada, este método devuelve el documento original. Para devolver el documento de reemplazo, use la opción returnNewDocument y establezca su valor en verdadero.
- Colación: Especifica el uso de la colación para operaciones. Permite a los usuarios especificar las reglas específicas del idioma para la comparación de strings, como reglas para mayúsculas y minúsculas y acentos. El tipo de este parámetro es un documento.
Devolver:
De forma predeterminada, este método devuelve el documento original. Para devolver el documento de reemplazo, use la opción returnNewDocument y establezca su valor en verdadero.
Ejemplos:
En los siguientes ejemplos, estamos trabajando con:
Base de datos: gfg
Colecciones: estudiante
Documento: Cuatro documentos contienen el nombre y la edad de los estudiantes .
- Reemplace el primer documento coincidente cuya edad sea 17 y devuelva el documento reemplazado:
db.student.findOneAndReplace({age:17},{name:"Mihir", age:17})
Aquí, encontramos un documento que coincide con la consulta de filtro dada (es decir, edad: 17) de la colección de estudiantes y luego reemplazamos el documento coincidente con un nuevo documento (es decir, {nombre: «Mihir», edad: 17}) usando el método findOneAndReplace(). Aquí, este método devuelve el documento original.
Después del reemplazo:
- Reemplace el primer documento coincidente cuya edad sea 17 y devuelva un nuevo documento:
db.student.findOneAndReplace({age:17},{name:"Sagar", age:17}, {returnNewDocument:true})
Aquí, encontramos un documento que coincide con la consulta de filtro dada (es decir, edad: 17) de la colección de estudiantes y luego reemplazamos el documento coincidente con un nuevo documento (es decir, {nombre: «Sagar», edad: 17}) usando el método findOneAndReplace(). Aquí, este método devuelve el nuevo documento porque el valor de la opción returnNewDocument se establece en verdadero.
Después del reemplazo:
Publicación traducida automáticamente
Artículo escrito por nikhilchhipa9 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA