如何定义MongoDB操作员订单,例如谁是第一个订单$ lookup,$ project,$ group,$ match等。
{
$lookup:{
//
}
},
{
$project: {
//
}
},
{
$group: {
//
}
},
{
$match: {
//
}
},
答案 0 :(得分:0)
如我所见,您正在谈论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);