PHP + Mongodb concat函数抛出错误

时间:2015-12-22 10:33:21

标签: php mongodb concat

Mongodb + php:我对mongodb很新,我的要求是我需要在两个字段(即first_name,last_name)上进行关键字搜索,并在单个查询中将完全匹配的记录作为用户名返回。

代码:

$res = $this->db->nf_users->aggregate({$project:{username:{$concat:["$first_name","$last_name"]}}},
                  {$match:{username:$search}}

遇到错误。

  

解析错误:语法错误,

中的意外{

任何人都可以建议,哪里出错了。

谢谢,

1 个答案:

答案 0 :(得分:2)

db.users.aggregate(
{
   $project:{
      username:{ $concat:["$first_name",' ',"$last_name"]}
   }
},
{
  $match :{
     username: { $regex:"abc",$options:"i"}
  }
}
)

通过这种方式,您将能够进行不区分大小写的搜索

$users = $this->db->collection('nf_users')
          ->raw(function ($collection) {
              return $collection->aggregate(
                 array(
                    array(
                       '$project' => array(
                            'username' => array('$concat' => array('$first_name', ' ', '$last_name')),
                         )
                      ),
                    array(
                        '$match' => array(
                             'username' => array('$regex' => 'avi', '$options' => 'i'),
                             )
                          )
                      )
                    );
                });