No tienes acceso a esta clase

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

Actualizando varios documentos

14/30
Recursos

Aportes 10

Preguntas 6

Ordenar por:

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

Listado de operadores de actualización:

  • $inc: Incrementa el valor de un atributo numérico en una cantidad específica.
    |
  • $mul: Multiplica el valor de un atributo numérico por un factor específico.
    |
  • $rename: Cambia el nombre de un atributo.
    |
  • $set: Asigna un valor específico a un atributo.
    |
  • $unset: Elimina un atributo de un documento.
    |
  • $min: Actualiza el valor de un atributo con el valor mínimo especificado, sólo si el valor actual es mayor que el valor especificado.
    |
  • $max: Actualiza el valor de un atributo con el valor máximo especificado, sólo si el valor actual es menor que el valor especificado.
    |
  • $currentDate: Establece el valor de un atributo como la fecha y hora actual.
    |
  • $addToSet: Añade un valor a un atributo de tipo conjunto (array), sólo si el valor no existe en el conjunto.
    |
  • $pop: Elimina el primer o último elemento de un atributo de tipo conjunto (array).
    |
  • $pull: Elimina un valor específico de un atributo de tipo conjunto (array).
    |
  • $push: Añade un valor a un atributo de tipo conjunto (array).
    |
  • $pullAll: Elimina varios valores específicos de un atributo de tipo conjunto (array).

Para comentar líneas de código en VS Code pueden utilizar el siguiente atajo

  1. Seleccionan las líneas a comentar
  2. Presionar Ctrl + K + C

Para descomentar las líneas

  1. Seleccionar las líneas a descomentar
  2. Presionar Ctrl + K + U

Más operadores:

  • $set: Permite agregar o modificar un atributo.
  • $rename: Podemos renombrar un atributo sin necesidad de meterme con los valores.
  • $unset: Eliminar algun atributo.

Para que no tengan que comentar las líneas de código que no van a usar en ese mismo momento, recuerden que, en visual studio code, pueden seleccionar varias líneas de código usando la tecla alt.

Primero, con su cursor hacen click y seleccionan el bloque de código que quieren ejecutar, luego, van hasta la parte de arriba, donde dice use("sample_training"), mantienen la tecla alt y seleccionan esa línea de código.

Luego pueden darle al botón de run, y mongodb ejecutará solo el código que ustedes seleccionaron.

link a la documentacion con los operadores de actualizacion

use("sample_training");

db.zips.updateMany(
  //query has two conditions, population $gt is greater than
  { city: "CLEVELAND", pop: { $gt: 50000 } },
  {
    $inc: {
      pop: 20,
    },
    $set: {
      //add new attribute
      my_description: "This state is bigger",
    },
  }
);

db.zips.updateMany(
  { city: "CLEVELAND", pop: { $gt: 50000 } },
  {
    $rename: {
      //rename this attribute
      my_description: "description",
    },
  }
);

db.zips.updateMany(
  { city: "CLEVELAND", pop: { $gt: 50000 } },
  {
    $unset: {
      // delete this attribute
      description: "",
    },
  }
);

db.zips.find({ city: "CLEVELAND", pop: { $gt: 50000 } });
Para comentar o des-comentar varias líneas en VSCode como lo hace el profesor, utilizas: `Shift + ALT + A`
Cambiaron el formato y no veo donde esta la base de datos para ensayar los codigos
En VS Code al hacer un find, solo nos muestra un numero de documentos. Como podemos verlos todos? hay alguna forma de paginar o solo nos va a mostrar una pequeña muestra? saludos

Querys de casos de uso de estos operadores

db.test2.updateMany({ age: { $gt: 18 }},{ $set: {adulto: true} })
db.libros.updateOne({_id :{ $eq: ObjectId ('64ed1a9946f812aa794d176b')}} , { $unset : { id:''}})

db.test2.updateOne({ _id: { $eq: ObjectId('64ed1a9946f812aa794d176b')}} , { $unset : { id:''}})

db.test2.updateOne( { $and: [{ age: { $lt: 18 }}, { name: { $exists: true }}]}, { $set: { adulto: false }})

db.test2.updateMany( { $and: [{ age: { $lt: 18 }}, { name: { $exists: true }}]}, { $set: { adulto: false }})

db.test2.updateOne(
  { _id: { $in: [ObjectId('64ed1cd746f812aa794d176f'), ObjectId('64ed1cb546f812aa794d176e')] } },
  { $set: { name: 'update in' } }
)


db.test2.updateMany(
  { _id: { $in: [ObjectId('64ed1cd746f812aa794d176f'), ObjectId('64ed1cb546f812aa794d176e')] } },
  { $set: { name: 'update in' } }
)

db.test2.updateOne( { $and: [{ adulto: { $ne: true }}, { full_name: { $eq: 'update in' }}]}, [{ $set: { ref: { $concat: ['$_id', '$age'] }}}])

// para incrementar valores de un campo $inc, si no existe el campo lo crea, pero si debe existir por el parametro de busquedad
db.products.updateOne(  {_id: 4 },  {    $inc: {      price: 50    }  }){    "_id": 4,    "name": "Prodcut 4",    "price": 450  }
ahora _id: 4 , el campo price quedaria en 500

// esta accion evita que se pare la insercion de los documentos, si alguno contiene error
db.products.insertMany([...] , {  ordered: false}))