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

Menggunakan agregat untuk menggabungkan daftar semua subdokumen yang cocok dengan kueri?

Anda dapat menggunakan agregasi di bawah ini. $match untuk menemukan dokumen di mana array memiliki nilai Frog dan $unwind pets Himpunan. $match di mana dokumen memiliki Frog dan langkah terakhir adalah group dokumen yang cocok ke dalam array.

<?php

    $mongo = new MongoDB\Driver\Manager("mongodb://localhost:27017");

    $pipeline = 
        [
            [   
                '$match' => 
                    [
                        'pets.animal' => 'Frog',
                    ],
            ],
            [   
                '$unwind' =>'$pets',
            ],
            [   
                '$match' => 
                    [
                        'pets.animal' => 'Frog',
                    ],
            ],
            [
                '$group' => 
                    [
                        '_id' => null,
                        'animals' => ['$push' => '$pets'],
                    ],
            ],
        ];

    $command = new \MongoDB\Driver\Command([
        'aggregate' => 'insert_collection_name', 
        'pipeline' => $pipeline
    ]);

    $cursor = $mongo->executeCommand('insert_db_name', $command);

    foreach($cursor as $key => $document) {
            //do something
    }

?>



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Tidak dapat terhubung ke mongodb menggunakan ip mesin

  2. Bagaimana urutan indeks gabungan penting dalam kinerja MongoDB?

  3. Bagaimana cara menulis kueri untuk mendapatkan nilai berbeda dari koleksi mongodb?

  4. Luwak meneruskan data dari withTransaction helper

  5. mongodb mendapatkan seluruh dokumen dari suatu nilai