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

MongoDB znajduje zagnieżdżone obiekty spełniające kryteria

Ponieważ tablice są zagnieżdżone, nie można używać podstawowego rzutowania, jak w przypadku find. Również w celu "odfiltrowania" zawartości tablicy z dokumentu należy najpierw "odwinąć" zawartość tablicy. W tym celu używasz struktury agregacji:

   $results = $db->genealogical_data->aggregate(array(
       array( '$match' => array(
           'people.search_columns.givenname' => 'Valentine'
       )),
       array( '$unwind' => '$people' ),
       array( '$match' => array(
           'people.search_columns.givenname' => 'Valentine'
       )),
       array( '$group' => array(
           '_id' => '$id',
           'name' => array( '$first' => '$name' ),
           'people' => array( '$push' => '$people' )
       ))
   ));

Punkt pierwszego $match etapem jest redukcja dokumentów, które ewentualnie odpowiadają Twoim kryteriom. Drugi raz odbywa się po $unwind , gdzie rzeczywiste elementy „tablicy” w dokumencie są „odfiltrowywane” od wyników.

Ostatnia $group przywraca oryginalną tablicę do stanu normalnego, bez elementów, które nie spełniają kryteriów.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. mongodb javascript po stronie serwera jest faktycznie po stronie klienta?

  2. Jak napisać bson zapytanie mongo w golangu?

  3. Jaki jest poprawny sposób zapytania MongoDB o _id przy użyciu ciągu znaków przy użyciu Pythona?

  4. Mongoose:jakie są różnice między Model.create i Collection.insert

  5. Jak pobrać pliki graficzne z mongodb na stronę html?