Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

775
Vistas
¿Cómo actualizo los valores de matriz anidados en mongoose?

Soy bastante nuevo en nodejs/express y estoy practicando el desarrollo de pila completa con devchallenges.io, estoy haciendo el desafío de compras. Estoy tratando de actualizar la cantidad de un elemento al que me dirijo dentro de la matriz de elementos. Entiendo que mi intento a continuación fue terrible, realmente estoy luchando por entender la lógica para poder hacerlo.

 // @route PUT api/list/item/quantity/:id // @desc Increase or decrease quantity // @access Private router.put('/item/quantity/:id', auth, async (req, res) => { const { action } = req.body; try { let list = await List.findOne({ user: req.user.id }); const item = list.items.find( (item) => item._id.toString() === req.params.id ); list = list.updateOne( { 'items._id': req.params.id }, { $set: { 'items.quantity': item.quantity + 1 } } ); await list.save(); return res.json(list); } catch (error) { console.error(error.message); res.status(500).send('Server Error'); } });
 const mongoose = require('mongoose'); const Schema = mongoose.Schema; const ListSchema = new Schema({ user: { type: Schema.Types.ObjectId, }, name: { type: String, default: 'Shopping List', }, items: [ { name: { type: String, default: '', }, note: { type: String, default: '', }, image: { type: String, default: '', }, category: { type: String, default: '', }, quantity: { type: Number, default: 1, }, }, ], date: { type: Date, default: Date.now, }, }); module.exports = List = mongoose.model('list', ListSchema);
over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Mire, esta es mi ruta de proveedor de actualización aquí, estoy actualizando el nombre de la calle y la ciudad anidados.

 router.put("/update-vendors", async (req, res, next) => { const vendor = await Vendor.updateOne( { "address.street": "Street2", }, { $set: { "address.$.street": req.body.street, "address.$.city": req.body.city, }, } ); res.status(200).json(vendor); });

Puede actualizar cosas particulares con la ayuda de $set y otro método $push

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda