我在MongoDB中有一个数据库users
。它包含以下字段:
我尝试通过聚合函数将第一个名称(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函数可能有什么问题?
任何帮助都将不胜感激。
答案 0 :(得分:2)
试试这段代码:
$cursor = $this->users->aggregate(
array(
'$project' => array(
'name' => array('$concat' => array('$fname', ' ', '$lname'))
)
),array(
'$sort' => array(
'name' => 1
)
)
);
希望得到这个帮助。