Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php中的mongodb排序聚合_Php_Mongodb - Fatal编程技术网

php中的mongodb排序聚合

php中的mongodb排序聚合,php,mongodb,Php,Mongodb,我在MongoDBusers中有一个数据库。它包含以下字段: _身份证 fname 名字 我尝试通过聚合函数将名字(fname)和姓氏(lname)连接到下面的php代码中 $cursor = $this->users->aggregate( array( '$project' => array( 'name' => array('$concat' => array('$fname', ' ', '$lname')) ) )

我在MongoDB
users
中有一个数据库。它包含以下字段:

  • _身份证
  • fname
  • 名字
我尝试通过聚合函数将名字(fname)和姓氏(lname)连接到下面的php代码中

$cursor = $this->users->aggregate(
  array(
    '$project' => array(
      'name' => array('$concat' => array('$fname', ' ', '$lname'))
    )
  )
);
这似乎很有效。 但我们如何对结果进行排序? 我尝试使用这行代码对结果进行排序

$cursor->sort(array("name" => 1));
但这给了我以下错误:

Fatal error: Call to a member function sort() on array
但是,我尝试在console中使用此代码,效果很好:

db.users.aggregate({
  $project: {
    'name' {$concat: ['$fname', ' ', '$lname']}
  }
}, {$sort: {name: 1}});
这段代码运行得很好,我以排序的方式得到了结果

php代码中的排序函数可能有什么问题

任何帮助都将不胜感激。

请尝试以下代码:

$cursor = $this->users->aggregate(
  array(
    '$project' => array(
      'name' => array('$concat' => array('$fname', ' ', '$lname'))
    )
  ),array(
    '$sort' => array(
       'name' => 1
    )
  )
);

希望对您有所帮助。

您可以在同一数组中添加排序,请参阅