sql >> Base de Datos >  >> NoSQL >> MongoDB

Conjunto de filtros MongoDb

Si solo filtra un elemento en una matriz, incluso si solo uno de los elementos coincide, se devolverá la matriz completa y no se devolverá nada si no hubo ninguna coincidencia. Por lo tanto, debe separar su matriz en diferentes documentos usando $unwind operador, y solo después, intente filtrar los resultados usando $match .

La siguiente consulta podría resolver su problema :

db.collection.aggregate([
  {"$unwind": "$product"},
  {"$match": {"product.name": "FirstWarehouseName1"}} // replace here with the name you want
])

Trabajando mongoplayground

Si me permite, solo un consejo :Debe almacenar cada producto en un documento diferente, aunque MongoDB no tiene esquemas y nos permite tener casi cualquier formato de documento, recuerde que cada documento debe contener el equivalente a una fila de información en una base de datos relacional normal. De lo contrario, comenzará a tener estos problemas y, además, problemas de rendimiento.