php

时间:2016-10-02 05:56:31

标签: php mongodb

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

  • _id
  • FNAME
  • L-NAME

我尝试通过聚合函数将第一个名称(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

但是,我尝试在控制台中使用此代码并且工作正常:

db.users.aggregate({
  $project: {
    'name' {$concat: ['$fname', ' ', '$lname']}
  }
}, {$sort: {name: 1}});

这段代码效果很好,我按照排序的方式得到了结果。

php代码中的sort函数可能有什么问题?

任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:2)

试试这段代码:

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

希望得到这个帮助。