MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Tablica filtrów MongoDb

Jeśli po prostu filtrujesz element w tablicy, nawet jeśli tylko jeden z elementów pasuje, zostanie zwrócona cała tablica i nic nie zostanie zwrócone, jeśli nie było dopasowania. Dlatego musisz podzielić swoją tablicę na różne dokumenty za pomocą $unwind operatora i dopiero po nim spróbuj filtrować wyniki za pomocą $match .

Poniższe zapytanie może rozwiązać Twój problem :

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

Praca mongoplayground

Jeśli mogę, tylko napiwek :Powinieneś przechowywać każdy produkt w innym dokumencie, chociaż MongoDB jest bezschematowy i pozwala nam mieć prawie każdy format dokumentu, pamiętaj, że każdy dokument powinien zawierać odpowiednik jednego wiersza informacji w zwykłej relacyjnej bazie danych. W przeciwnym razie zaczniesz mieć te problemy, a dodatkowo problemy z wydajnością.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. związek wiele do wielu z nosql (mongodb i mangusta)

  2. mangusta:sprawdź, czy wstawiony dokument jest duplikatem, a jeśli tak, zwróć istniejący dokument

  3. Ostrzeżenie:uzyskiwanie dostępu do nieistniejącej właściwości „MongoError” eksportu modułu wewnątrz zależności cyklicznej

  4. MongoDB diacriticInSensitive search nie pokazuje wszystkich akcentowanych (słów ze znakiem diakrytycznym) wierszy zgodnie z oczekiwaniami i na odwrót

  5. Usuń duplikaty podczas używania $unionWith w MongoDB