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

Zapytanie MongoDB z elemMatch dla zagnieżdżonych danych tablicowych

Twoje zapytanie po prostu zwraca wszystkie dokumenty zawierające modules element gdzie name == 'foo' . Aby użyć $elemMatch aby filtrować dane wyjściowe, należy go użyć w argumencie projekcji funkcji find zadzwoń zamiast części zapytania:

db.test.find({}, {modules: {$elemMatch: {name: 'foo'}}})

Aby połączyć obie koncepcje, możesz odwołać się do indeksu elementu tablicy dopasowanego w zapytaniu za pomocą $ :

db.test.find({modules: {$elemMatch: {name: 'foo'}}}, {'modules.$': 1})

W obie strony powraca:

{
  "_id": ObjectId("..."),
  "modules": [
    {
      "name": "foo",
      "mandatory": false,
      "group": [
        {
          "name": "g1"
        }
      ]
    }
  ]
}

Jeśli potrzebujesz innych pól zawartych w danych wyjściowych, dodaj je do obiektu rzutowania (np. name: 1 ).




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Jak usunąć bazę danych MongoDB z wiersza poleceń?

  2. Jak zaimportować dane z mongodb do pand?

  3. Dlaczego nadal powinieneś używać silnika pamięci masowej MMAPv1 dla MongoDB

  4. Tworzenie bazy danych w Mongo:nie można się połączyć, połączenie nie powiodło się

  5. Jak wyświetlić obraz base64 w reakcji?