El MongoDB shell proporciona los siguientes métodos para actualizar documentos en una colección:
Para actualizar un solo documento, utilice
db.collection.updateOne().Para actualizar varios documentos, se debe utilizar
db.collection.updateMany().Para reemplazar un documento, se debe utilizar
db.collection.replaceOne().
Los ejemplos de esta página hacen referencia al conjunto de datos de muestra de Atlas. Puede crear un clúster de Atlas gratuito y rellenarlo con datos de muestra para seguir estos ejemplos. Para obtener más información sobre la configuración de implementaciones, consulte Introducción a MongoDB.
Sintaxis del Operador de actualización
Para actualizar un documento, MongoDB proporciona operadores de actualización, como $set, para modificar los valores de los campos.
Para utilizar los operadores de actualización, pasa a los métodos de actualización un documento de actualización con el formato:
{ <update operator>: { <field1>: <value1>, ... }, <update operator>: { <field2>: <value2>, ... }, ... }
Algunos operadores de actualización, como, crean el campo si este $set no existe. Consulte la referencia de cada operador de actualización para obtener más información.
Actualiza un solo documento
Utilice el método db.collection.updateOne() para actualizar el primer documento que coincida con un filtro especificado.
Nota
MongoDB mantiene el orden de la clasificación natural de los documentos. Este orden es una característica de implementación interna y no debería confiar en ninguna estructura en particular. Para obtener más información, consulte Orden natural.
Ejemplo
Para actualizar el primer documento en la colección sample_mflix.movies donde title es igual a "Twilight":
use sample_mflix db.movies.updateOne( { title: "Twilight" }, { $set: { plot: "A teenage girl risks everything–including her life–when she falls in love with a vampire." }, $currentDate: { lastUpdated: true } })
La operación de actualización:
Usa el
$setoperador para actualizar el valor del campoplotpara la películaTwilight.Usa el operador
$currentDatepara actualizar el valor del campolastUpdateda la fecha actual. Si el campolastUpdatedno existe,$currentDatecreará el campo. Consulte$currentDatepara más detalles.
Actualiza varios documentos
Utilice el db.collection.updateMany() para actualizar todos los documentos que coincidan con un filtro especificado.
Ejemplo
Para actualizar todos los documentos de la colección sample_airbnb.listingsAndReviews donde security_deposit es menor que 100:
use sample_airbnb db.listingsAndReviews.updateMany( { security_deposit: { $lt: 100 } }, { $set: { security_deposit: 100, minimum_nights: 1 } } )
La operación de actualización utiliza el operador $set para actualizar el valor del campo security_deposit a 100 y el valor del campo minimum_nights a 1.
Reemplazar un documento
Para reemplazar todo el contenido de un documento excepto el campo _id, pasa un documento completamente nuevo como segundo argumento a db.collection.replaceOne().
Al reemplazar un documento, el documento de reemplazo debe contener solo pares de campo/valor. No se deben incluir expresiones de operadores de actualización.
El documento de reemplazo puede tener campos distintos a los del documento original. En el documento de reemplazo, se puede omitir el campo _id ya que el campo _id es inmutable; sin embargo, si se incluye el campo _id, debe tener el mismo valor que el valor actual.
Ejemplo
Para reemplazar el primer documento de la colección sample_analytics.accounts donde account_id: 371138:
db.accounts.replaceOne( { account_id: 371138 }, { account_id: 893421, limit: 5000, products: [ "Investment", "Brokerage" ] } )
Ejecute el siguiente comando para leer su documento actualizado:
db.accounts.findOne( { account_id: 893421 } )
Comportamiento de actualización
Para obtener más información sobre el comportamiento específico de la actualización de documentos, consulte Comportamiento.
Obtén más información
Para aprender cómo actualizar documentos mediante un pipeline de agregación, se puede consultar Actualizaciones con pipeline de agregación.
Para ver todos los métodos disponibles para actualizar documentos, consulte Métodos de actualización.