Docs Menu
Docs Home
/ /

Update Documents

El MongoDB shell proporciona los siguientes métodos para actualizar documentos en una colección:

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.

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.

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 $set operador para actualizar el valor del campo plot para la película Twilight.

  • Usa el operador $currentDate para actualizar el valor del campo lastUpdated a la fecha actual. Si el campo lastUpdated no existe, $currentDate creará el campo. Consulte $currentDate para más detalles.

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.

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 } )

Para obtener más información sobre el comportamiento específico de la actualización de documentos, consulte Comportamiento.

Volver

Lea

Obtén una insignia de habilidad

¡Domina las "Operaciones CRUD" gratis!

Más información

En esta página