I want to get data from two collections where there is a common field between this two collections.I am giving both queries for Mongo and PHP. My PHP version is PHP 5.6.31-1~ubuntu14.04.1+deb.sury.org+1 (cli) My mongo db query for between two collections:
db.dental_refset.aggregate(
[
{ $lookup:
{
from:"v20170731",
localField:"referencedComponentId",
foreignField:"conceptId",
as:"joinedData"
}
}
])
I am ding this in php and my code is below:
error_reporting(1);
require 'driver/vendor/autoload.php';
$client = new MongoDB\Client("mongodb://192.168.2.95:27017");
$collection = $client->selectDatabase('en-edition')->selectCollection("dental_refset");
$ops = array(
array(
"$lookup" => array(
"from" => "v20170731",
"localField" => "referencedComponentId",
"foreignField" => "conceptId",
"as" => "user_docs"
)
)
);
$results = $collection->aggregate($ops);
print_r($collection);
But error occurs. Error has given below:
Uncaught MongoDB\Driver\Exception\RuntimeException: Invalid filter: empty key in /var/www/html/mednxtMod/mednxt/driver/vendor/mongodb/mongodb/src/Operation/Aggregate.php:223\nStack trace:\n#0 /var/www/html/mednxtMod/mednxt/driver/vendor/mongodb/mongodb/src/Operation/Aggregate.php(223): MongoDB\Driver\Server->executeCommand('en-edition', Object(MongoDB\Driver\Command), Object(MongoDB\Driver\ReadPreference))\n#1 /var/www/html/mednxtMod/mednxt/driver/vendor/mongodb/mongodb/src/Collection.php(215): MongoDB\Operation\Aggregate->execute(Object(MongoDB\Driver\Server))\n#2 /var/www/html/mednxtMod/mednxt/error.php(19): MongoDB\Collection->aggregate(Array)\n#3 {main}\n thrown in /var/www/html/mednxtMod/mednxt/driver/vendor/mongodb/mongodb/src/Operation/Aggregate.php on line 223Uncaught