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

Mongo Zapytanie o zagnieżdżone pole w tablicy.

Chciałbyś użyć $elemMatch w tym celu.

{"genres": { "$elemMatch" :  {"name": "Shooter"} } }
// or
{"genres": { "$elemMatch" :  {"name": { "$in": ["Shooter"] } } } }

https://docs.mongodb.com/manual/reference/operator/ zapytanie/elemMatch/

Możesz także użyć notacji mongodb z kropkami, która będzie działać tak, jak byś byś mógł, z wyjątkiem:

{"genres.name": "Shooter"}
// or
{"genres.name": { "$in": ["Shooter"]}}

Mongodb wie, jak to zinterpretować w przypadku genres jest tablicą. Należy pamiętać, że zapytanie z notacją kropkową jest nieco niejednoznaczne, ponieważ będzie również pasować do name właściwość w przypadku genres właściwość nie jest tablicą. Na przykład ten dokument będzie pasował:

{"genres": { "name": "Shooter" } }

We wszystkich przypadkach możesz zindeksować name właściwość w genres tablica i indeks zostaną użyte do wyszukiwania.

db.collection.createIndex({'genres.name': 1})

https://docs.mongodb.com/manual/reference/ słowniczek/#termin-dot-notation

https://docs.mongodb.com/manual/reference/operator/ zapytanie/w/




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Aktualizujesz wiele poddokumentów za pośrednictwem Mongoose?

  2. Modelowanie kolekcji podrzędnych w MongoDB Realm Sync

  3. Narzędzia MongoDB od społeczności, które uzupełniają ClusterControl

  4. Używasz agregacji do łączenia listy wszystkich poddokumentów pasujących do zapytania?

  5. $fitler zagnieżdżona tablica używająca $lte $gte