No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

No se trata de lo que quieres comprar, sino de quién quieres ser. Invierte en tu educación con el precio especial

Antes: $249

Currency
$209

Paga en 4 cuotas sin intereses

Paga en 4 cuotas sin intereses
Suscríbete

Termina en:

11 Días
19 Hrs
48 Min
15 Seg

Actualizando un documento

13/30
Recursos

Aportes 8

Preguntas 0

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Actualizar documento

para actualizar un documento debemos pasar un query con un identificador del documento y un objeto con operadores como $inc para incrementar propiedades numéricas o $set para setear una o mas propiedades, añadir una nueva etc.

{
  _id: "8asd8asd8asd8asd", 
  name: "Juan",
  age: 20 
}

modificar una propiedad

db.collection.updateOne({ _id: ObjectId("id")}, { $set:  {name: "change name"}})

modificar varias propiedades

db.collection.updateOne({ _id: ObjectId("id")}, { $set: { name: "change name", age: 23}})

añadir una nueva propiedad

db.collection.updateOne({ _id: ObjectId("id")}, { $set: { name: "change name", age: 23, gender: "M" }})

incrementar una propiedad

db.collection.updateOne({ _id: ObjectId("id")}, { $inc: { age: 5 }})

Los operadores son símbolos especiales que ayudan a los compiladores a realizar tareas matemáticas o lógicas. MongoDB ofrece varios tipos de operadores para interactuar con la base de datos.

Para quienes no asignaron id sino que utilizan el autogenerado por mongo, el update sería:

db.products.updateOne(
   { "_id": ObjectId("63e91131ae0786ce88df4944") },
   { $set: { "name": "New Miniature 1", "price": 110 } }
)

donde ObjectId es la propiedad para accede dentro del documento. Ya que este se vería así en los registros:

{
    "_id": {
      "$oid": "63e91131ae0786ce88df4944"
    },
    "name": "Product 1",
    "price": 100
  }
Aca una lista de los operators que se pueden usar: * *$currentDate: Sets the field value to the current date* * *$inc: Increments the field value$rename: Renames the field* * *$set: Sets the value of a field* * *$unset: Removes the field from the document* * *$addToSet: Adds distinct elements to an array* * *$pop: Removes the first or last element of an array* * *$pull: Removes all elements from an array that match the query* * *$push: Adds an element to an array*
use("platzi_store")

//ACTUALIZAR ATRIBUTOS con $set
db.products.updateOne(
    //query
    {
        _id: 1
    },
    //change => operator
    {
        $set: {
            name: 'basura',
            price: 1,
            tags: ['useless', 'small'] //tambien puede añadir propiedades nuevas
        }
    }
)

///INCREMENTO con $inc
db.products.updateOne(
    //query
    {
        _id: 1
    },
    //change => operator
    {
        $inc: {
            price: 100
        }
    }
)

//BUSCAR Y MODIFICAR UN OBJETO CON ID AUTOGENERADO POR MONGO CON ObjectId()
db.products.updateOne(
    //query
    {
        _id: ObjectId("63d81a4a8e4fe2331cfbef8f")
    },
    //change => operator
    {
        $inc: {
            price: 100
        }
    }
)

db.products.find()

// $set: "Sets the value of a field in a document."
// $inc: "Increments the value of the field by the specified amount."
// Objectld: "Function to find a doc with objlD"
**Replace y Update** *La principal diferencia entre replace y update en MongoDB es cómo se modifican los documentos en una colección:* ***Replace:** *       * *Reemplaza un documento completo por otro.*        * *No se pueden usar operadores de actualización como $inc o $set.*        * *Útil para reemplazar un documento completo con nuevos datos.* *Update:*        * *Modifica los campos específicos de un documento.*  * *Se pueden usar operadores de actualización para modificar valores, agregar nuevos campos o eliminar campos existentes.*        * *Útil para realizar cambios específicos en un documento.* ** ```js use("football") db.teams.replaceOne( { _id: ObjectId("65cb8d4b73c22307b9a89b24"), }, { name: "Arsenal", league: "Premier League", country: "England" } ) use("football") db.teams.updateOne( { _id: ObjectId("65cb8d4b73c22307b9a89b24"), }, { $set: { name: "Aston Villa" } } ) ```use("football")db.teams.replaceOne(    {      \_id: ObjectId("65cb8d4b73c22307b9a89b24"),    },    {      name: "Arsenal",      league: "Premier League",      country: "England"    }  ) **       
use("platzi_store");

db.products.updateOne(
  //query, using ObjectId function, because is a $oid generated from mongo
  { _id: ObjectId("64af6901faea58044b9fd37e") },
  //change => with operator: $set, $inc
  {
    $set: {
      name: "Charger ultra speed",
      types: ['american', 'european', 'african'], // we can put new attributes
    },
    $inc: {
      price: 100, // increment the numeric values, plus this value
    },
  }
);

db.products.find();