sql >> Database teknologi >  >> NoSQL >> MongoDB

MongoDb Filter Array

Hvis du bare filtrerer et element i et array, selvom kun et af elementet matcher, vil hele arrayet blive returneret, og intet vil blive returneret, hvis der ikke var nogen match. Derfor skal du adskille dit array i forskellige dokumenter ved hjælp af $unwind operatør, og først efter det, prøv at filtrere resultaterne ved hjælp af $match .

Følgende forespørgsel kan muligvis løse dit problem :

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

Arbejder mongoplayground

Hvis jeg må, bare et tip :Du bør gemme hvert produkt i et andet dokument, selvom MongoDB er skemaløst og tillader os at have næsten ethvert dokumentformat, så husk at hvert dokument skal indeholde det, der svarer til en række informationer i en almindelig relationsdatabase. Ellers vil du begynde at få disse problemer og desuden problemer med ydeevnen.



  1. Hvad er forskellen mellem metoden insert(), insertOne() og insertMany()?

  2. Benchmark Apache HBase vs Apache Cassandra på SSD i et cloudmiljø

  3. mongodb samtalesystem

  4. Hvordan kan jeg redigere/omdøbe nøgler under json.load i python?