MongoDB – Reemplazar documentos usando MongoShell

En MongoDB, puede reemplazar un documento existente con un nuevo documento en la colección con la ayuda del db.collection.replaceOne()método. Este método reemplazará el documento existente con el documento de reemplazo.

replaceOne()es un método de shell mongo, que solo reemplaza un documento a la vez. El documento de reemplazo puede contener diferentes campos en comparación con el documento original.

  • Como sabemos que el campo _id es inmutable, puede omitir el campo _id en el documento de reemplazo. Y si desea agregar el campo _id en el documento de reemplazo, entonces el valor del campo _id es el mismo que el valor actual y si usa un valor diferente, obtendrá un error.
  • El documento de reemplazo solo puede contener pares de valor de campo. No contiene expresiones de operador de actualización.
  • Este método reemplaza el primer documento que cumple la condición dada en la colección con el documento de reemplazo. O, en otras palabras, si varios documentos cumplen la condición dada, este método reemplazará el primer documento con el documento de reemplazo que coincida con el filtro o la condición dada.
  • Este método se puede utilizar en las transacciones de varios documentos.

Sintaxis:

db.collection.replaceOne(
   <filter>,
   <replacementDocument>,
   {
     upsert: <boolean>,
     writeConcern: <document>,
     collation: <document>,
     hint: <document|string>                   
   }
)

Parámetros:

filter: Primer parámetro de este método. Especifica los criterios de selección para la actualización. El tipo de este parámetro es documento. Si contiene un documento vacío, es decir, {}, este método reemplazará el primer documento de la colección con el documento de reemplazo.

replaceDocument: Segundo parámetro de este método. Es un documento de reemplazo que reemplazará al documento original. No contiene operaciones de actualización.

Parámetros opcionales:

  • upsert: el valor de este parámetro es verdadero o falso. Si el valor de este parámetro es verdadero, entonces el método reemplazará el documento que coincida con la condición dada con el documento de reemplazo o si alguno de los documentos en la colección no coincide con el filtro dado, entonces este método insertará un nuevo documento ( es decir, documento de reemplazo) en la colección. El tipo de este parámetro es booleano y el valor predeterminado de este parámetro es falso.
  • writeConcern: solo se usa cuando no desea usar la preocupación de escritura predeterminada. El tipo de este parámetro es documento.
  • colación: Especifica el uso de la colación para las 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 documento.
  • sugerencia: es un documento o campo que especifica el índice que se utilizará para admitir el filtro. Puede tomar un documento de especificación de índice o la string de nombre de índice y si especifica un índice que no existe, dará un error.

Retorno: este método devuelve un documento que contiene un valor booleano reconocido como verdadero (si el problema de escritura está habilitado) o falso (si el problema de escritura está deshabilitado), matchedCount representa el número total de documentos coincidentes, modifiedCount representa el número total de documentos modificados y upsertedId representa el _id del documento alterado. upsertedId solo aparece en este documento cuando el valor del parámetro upsert se establece en verdadero.

Ejemplos:

En los siguientes ejemplos, estamos trabajando con:

Database: GeeksforGeeks
Collection: employee
Document: three documents that contain the details of the employees in the form of field-value pairs.

Sustitución del primer documento:

En este ejemplo, vamos a reemplazar el primer documento de la colección del empleado, es decir, {name: "Rohit", age: 20, branch: "CSE", department: "HR"} con el documento de reemplazo, es decir, {name: "Anu", age: 30, branch: "EEE", department: "HR", joiningYear: 2018}utilizando el replaceOne()método.

db.collection.replaceOne({}, {replacement document})

Reemplazo de un solo documento que coincida con el filtro:

En este ejemplo, estamos reemplazando un documento de la colección de empleados que coincide con la condición o filtro dado, es decir, name: "Sonu"con el documento de reemplazo, es decir, {name: "Sonu", age: 25, branch: "CSE", department: "Designing"} utilizando el replaceOne()método. O dicho de otro modo, en este ejemplo estamos reemplazando un documento de un empleado cuyo nombre es Sonu.

Documento de sustitución:

En este ejemplo, estamos reemplazando un documento con un documento de reemplazo. Aquí, varios documentos coinciden con el filtro, es decir, el nombre: «Sonu», por lo que el replaceOne()método reemplaza el primer documento que coincide con la condición dada entre estos documentos, como se muestra en las imágenes a continuación:

antes del reemplazo:


después del reemplazo:

Publicación traducida automáticamente

Artículo escrito por ankita_saini y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *