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:

12 Días
3 Hrs
11 Min
12 Seg

Array Update Operators

15/30
Recursos

Aportes 10

Preguntas 0

Ordenar por:

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

Por si necesitan insertar multiples valores adentro de un arreglo, lo pueden hacer de la siguiente manera:

use("platzi_store")

db.inventory.updateOne({_id: 4}, {
  $push: {
    tags:{
      $each:["headphone","wireless"]
    }
  }
})
db.inventory.find()

Modificadores del operador push

$each
Agrega múltiples valores al campo de la matriz.
$slice
Limita el número de elementos de la matriz. Requiere el uso del modificador $each.
$sort
Ordena los elementos de la matriz. Requiere el uso del modificador $each.
$position
Especifica la ubicación en la matriz en la que insertar los nuevos elementos. Requiere el uso del modificador $each. Sin el modificador $position, el $push agrega los elementos al final de la matriz

Mas sobre Array Update operators

Con los siguientes operadores podremos modificar los documentos que dentro contengan un array:

  • $push: Agrega un elemento en el array.
  • $pull: Remueve todos los elementos del array que hagan match con un query especifico.
  • $in: Hace match con algunos de los valores especificados en un arreglo.

Valla, este profesor es muy pro, se le entiende muy bien, eso si prestar atencion con enfoque

EL update many sin un query es como un SET sin un WHERE ? hay que ser cuidadosos con esto jeje

Está muy interesante el curso, al punto que me tiene trasnochando 😅

Array Update Operator

{ _id: 1, item: { name: "item ab", code: "123", description : "Single line description."    }, qty: 15, tags: [ "school", "book", "bag", "headphone", "appliance" ], },
{ _id: 2, item: { name: "item cd", code: "123", description : "First line\nSecond line"     }, qty: 20, tags: [ "appliance", "school", "book" ] },
{ _id: 3, item: { name: "item ij", code: "456", description : "Many spaces before     line" }, qty: 25, tags: [ "school", "book" ] },
{ _id: 4, item: { name: "item xy", code: "456", description : "Multiple\nline description"  }, qty: 30, tags: [ "electronics", "school" ] },
{ _id: 5, item: { name: "item mn", code: "000" }, qty: 20, tags: [ "appliance", "school" ] }, 

si queremos añadir un nuevo elemento a la propiedad de arreglo podemos hacerlo con el operador $push

db.inventory.updateOne(
  {
    _id: 4
  },
  {
    $push: {
      tags: "anything"
    }
  }
)

si queremos añadir varios elementos a la propiedad de arreglo podemos hacerlo con el operador $each

db.inventory.updateMany({},
  {
    $push: {
      tags: {
        $each: ["ele1", "ele2"]
      }
    }
  }
)

caso contrario, si queremos quitar un elemento de la propiedad de arreglo podemos hacerlo con el operador $pull

db.inventory.updateMany({},
  {
    $pull: {
      tags: "book"
    }
  }
)

si queremos quitar varios elementos de la propiedad de arreglo podemos hacerlo con el operador $in

db.inventory.updateMany({},
  {
    $pull: {
      tags: {
        $in: ["ele1", "ele2"]
      }
    }
  }
)

Resumiendo

$push: añade un elemento a un arreglo
$each: añade varios elementos a un arreglo
$pull: remueve un elemento de un arreglo
$in: remueve varios elementos de un arreglo

Hola Chicos \n Yo me quise seguir con el escenario anterior en Docker sobre una IT Stores de Dispositivos technicos como : Laptops , HeadPhones, Switches y Routers, por tanto me he creado un array de tiendas disponibles en mi Ciudad Captial para poder ejecrcer esta clase desde local en mi mongodb docker container , no desde Atlas conectado mas si conectado al contenedor que ya he levantado y No quiero tumbar ps asi practivo algode Docker tambien en mi OS. ahora mis Elementos Documentos quedan asi : ```js { "_id": ObjectId("6747a6105e57721f18a1474f"), "ProductName": "Airpods", "Price": 425, "Quantity": 35, "BogStores": [ "PepeSierra", "Calle127", "CityCenter", "ElDoradoMall", "Kra30", "SubaStation", "PortalAmericas", "Calle54", "ChapineroPlazaq" ] } ```{ "\_id": ObjectId("6747a6105e57721f18a1474f"), "ProductName": "Airpods", "Price": 425, "Quantity": 35, "BogStores": \[ "PepeSierra", "Calle127", "CityCenter", "ElDoradoMall", "Kra30", "SubaStation", "PortalAmericas", "Calle54", "ChapineroPlazaq" ] } \nLuego Ya pude hacer actualizaciones con $push && $pull y fue Genial. \nChatGTP me ayudo un poco tambien .
En el codigo insert copiado del gist del profesor tiene una coma de mas al final de tags del id 1. Eso me dio error al ejecutar el insert. ```js use("platzi_store") db.inventory.drop() db.inventory.insertMany([ { _id: 1, item: { name: "item ab", code: "123", description : "Single line description." }, qty: 15, tags: [ "school", "book", "bag", "headphone", "appliance" ], }, { _id: 2, item: { name: "item cd", code: "123", description : "First line\nSecond line" }, qty: 20, tags: [ "appliance", "school", "book" ] }, { _id: 3, item: { name: "item ij", code: "456", description : "Many spaces before line" }, qty: 25, tags: [ "school", "book" ] }, { _id: 4, item: { name: "item xy", code: "456", description : "Multiple\nline description" }, qty: 30, tags: [ "electronics", "school" ] }, { _id: 5, item: { name: "item mn", code: "000" }, qty: 20, tags: [ "appliance", "school" ] }, ]) db.inventory.find() ```

Otra forma de hacerlo:

db.inventory.updateMany(
  {},
  {
    //delete this elements in a array
    $pullAll: {
      tags: ["notebook", "pencil"],
    },
  }
);