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" ] ] }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 .