MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

MongoDB menemukan objek bersarang yang memenuhi kriteria

Karena array bersarang, Anda tidak dapat menggunakan proyeksi dasar seperti yang Anda bisa dengan find. Juga untuk "memfilter" konten array dari dokumen, Anda perlu "melepaskan" konten array terlebih dahulu. Untuk ini, Anda menggunakan kerangka kerja agregasi:

   $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' )
       ))
   ));

Inti dari $match tahap adalah untuk mengurangi dokumen yang mungkin cocok dengan kriteria Anda. Kedua kalinya dilakukan setelah $unwind , di mana item "array" sebenarnya dalam dokumen "difilter" dari hasil.

$group terakhir mengembalikan larik asli ke normal, dikurangi item yang tidak sesuai dengan kriteria.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Bagaimana cara menghapus item di MongoRepository menggunakan anotasi kueri?

  2. MongoDB / Express - Cara mengganti basis data setelah terhubung melalui connect()

  3. Ubah atribut string MongoDB yang ada menjadi BSON::ObjectId

  4. Di mana MongoDB menyimpan dokumennya?

  5. Agregasi MongoDB PHP, Kelompokkan berdasarkan Jam