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

470
Vistas
Mongoose: cómo empujar un objeto en una matriz anidada de objetos

Tengo esta estructura de datos en mi base de datos MongoDb:

 "menu": [ { "dishCategory":"61e6089f209b802518e2b4a4", "dishMeals": [ { "dishMealName": "Burger King", "dishMealIngredients": "Burger lepinja, bbq sos, berlin sos, zelena" "dishMealPrice": 5 } ] } ]

¿Cómo presiono un nuevo objeto dentro de dishMeals en la categoría de plato exacta (estoy proporcionando el id de categoría de plato, el objeto de plato nuevo y el _id de restaurante a través de req.body) He intentado esto pero nada cambia:

 await Restaurants.updateOne( { '_id' : _id, 'menu.dishCategory' : dishCategoryId }, { $push : { 'menu.$.dishMeals' : newDish } } );
over 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

  1. Use arrayFilters para filtrar los documentos anidados en el campo de matriz, luego $push si se cumplen los criterios de filtro en arrayFilters .
 db.collection.update({ "_id": _id, "menu.dishCategory": dishCategoryId }, { $push: { "menu.$[menu].dishMeals": newDish } }, { arrayFilters: [ { "menu.dishCategory": dishCategoryId } ] })

Ejemplo de parque infantil de Mongo

over 4 years ago · Santiago Trujillo Denunciar

0

Puede hacerlo con la configuración de arrayFilters en la consulta de update :

 db.collection.update({ "restaurant_id": 1 }, { "$push": { "menu.$[element].dishMeals": { "dishMealName": "Best Burger", "dishMealIngredients": "Best burger in town", "dishMealPrice": 10 } } }, { "arrayFilters": [ { "element.dishCategory._id": "61e6089f209b802518e2b4a4" } ] })

ejemplo de trabajo

over 4 years ago · Santiago Trujillo Denunciar

0

Puede leer la pregunta y la solución que proporcionaron aquí . Espero que esta le sea útil.

 db.collection.update({ "_id": 1, "menu.dishCategory": "61e6089f209b802518e2b4a4" }, { $push: { "menu.$.dishMeals": newMeal } })
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