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

175
Vistas
¿Hay alguna manera de buscar a través de matrices incrustadas utilizando canalización agregada en MongoDB?

Necesito buscar en todas las matrices dentro del campo de categorías para saber si el producto pertenece a la categoría 'Camiseta', ¿hay alguna forma de buscar en todas las matrices dentro del campo de categoría?

Cualquier ayuda sería apreciada.

Esto es lo que he intentado hasta ahora

 // Aggregate Pipeline db.products.aggregate([ {$group : {_id : {productID : '$productID', productTitle : '$productTitle ', categories: '$categories' } } }, {$project : { category_tshirts : {$in : ['T-Shirts', '$_id.categories']} } } ]);

Aquí hay un ejemplo de uno de los documentos:

 // Example document { "productID" : "B000072SJ2", "productTitle" : "Loosegear Short Sleeve", "categories" : [ [ "Sports & Outdoors", "Clothing", "Men", "Shirts", "T-Shirts" ], [ "Clothing, Shoes & Jewelry", "Men", "Clothing", "Shirts" ], [ "Clothing, Shoes & Jewelry", "Men", "Big & Tall" ] ] }
over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Por supuesto. Puede usar el operador desenredado para deshacerse de las matrices anidadas.

Este operador le permite tener tantos documentos separados como elementos en la matriz seleccionada. Por ejemplo, tener este documento:

 { "productID" : "B00006I551", "productTitle" : "CASIO F91W-1 Casual Sport Watch", "categories" : [ [ "Sports & Outdoors", "Accessories", "Sport Watches" ], [ "Clothing, Shoes & Jewelry", "Sport Watches" ], [ "Clothing, Shoes & Jewelry", "Men" ] ] }

Si usa relajarse en el campo de categories :

db.products.aggregate( [ { $unwind : "$categories" } ] )

Obtendrá 3 documentos casi similares, donde solo las categorías son diferentes (1 documento para cada elemento en la matriz de nivel superior):

 { "productID" : "B00006I551", "productTitle" : "CASIO F91W-1 Casual Sport Watch", "categories" : [ "Sports & Outdoors", "Accessories", "Sport Watches" ] }, { "productID" : "B00006I551", "productTitle" : "CASIO F91W-1 Casual Sport Watch", "categories" : [ "Clothing, Shoes & Jewelry", "Sport Watches" ] }, { "productID" : "B00006I551", "productTitle" : "CASIO F91W-1 Casual Sport Watch", "categories" : [ "Clothing, Shoes & Jewelry", "Men" ] }

Ahora puede usar el operador $in u otras formas de consultar y filtrar a través de categories .

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