आप नीचे एकत्रीकरण का उपयोग कर सकते हैं। $match
उन दस्तावेज़ों को खोजने के लिए जहां सरणी का मान Frog
. है और $unwind
pets
सरणी। $match
जहां दस्तावेज़ में Frog
है और अंतिम चरण है group
मिलान करने वाले दस्तावेज़ सरणी में।
<?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
}
?>