Mongodb + php:我对mongodb很新,我的要求是我需要在两个字段(即first_name,last_name)上进行关键字搜索,并在单个查询中将完全匹配的记录作为用户名返回。
代码:
$res = $this->db->nf_users->aggregate({$project:{username:{$concat:["$first_name","$last_name"]}}},
{$match:{username:$search}}
遇到错误。
解析错误:语法错误,
中的意外{
任何人都可以建议,哪里出错了。
谢谢,
答案 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'),
)
)
)
);
});