如何定义MongoDB运算符命令,如谁是第一个订单$ lookup,$ project,$ group,$ match等。
{
$lookup:{
//
}
},
{
$project: {
//
}
},
{
$group: {
//
}
},
{
$match: {
//
}
},
正如我所看到的,你在谈论Mongodb Aggregation如何运作的步骤,
它就像我们用来执行的管道,第一个管道结果就是我们将应用下一个管道并继续。
您将从这个link了解更多有关阶段/管道的信息。
编辑
$this->manager = new MongoDB\Driver\Manager("mongodb://$mongo_host:$mongo_port/$mongo_db_name", array_filter([
'username' => $mongo_user_name,
'password' => $mongo_user_password,
]));
$options = [
"projection" => ["overall" => 1, "tempid" => 1, "temp_title" => 1],
'skip' => intval($postArr['start']),
'limit' => intval($postArr['length']), // to speed up operation which skip perform traversing all docs
'sort' => [$sortField => $sortOrder],
'collation' => ['locale' => 'en_US', "numericOrdering" => true], // for string as a number sorting
];
// pr($options);die;
$query = new MongoDB\Driver\Query($match, $options);
// $manager = new MongoDB\Driver\Manager('mongodb://yoururl');
$readPreference = new MongoDB\Driver\ReadPreference(MongoDB\Driver\ReadPreference::RP_PRIMARY);
$cursor = $this->manager->executeQuery('dbname.collection', $query, $readPreference);