No tienes acceso a esta clase

¬°Contin√ļa aprendiendo! √önete y comienza a potenciar tu carrera

Array Update Operators

15/30
Recursos

Aportes 8

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

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

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

Otra forma de hacerlo:

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