Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

169
Views
¿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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!