我在mongo db collection studentTbl中有三个字段:
first_name
middle_name
姓氏
我在php应用程序中使用mongo db创建搜索模块,并尝试了以下代码行
$query = array('$or' => array(
array("registration_temp_perm_no" => new MongoRegex("/$arg/i")),
array("roll_no" => new MongoRegex("/$arg/i")),
array(
array(
'$project' => array(
'fullname' => array('$concat' => array('$first_name', ' ', '$last_name')),
)
),
array(
'$match' => array(
'fullname' => array('$regex' => $arg, '$options' => 'i'),
)
)
),
array(
array(
'$project' => array(
'fullname' => array('$concat' => array('$first_name', ' ', '$middle_name')),
)
),
array(
'$match' => array(
'fullname' => array('$regex' => $arg, '$options' => 'i'),
)
)
),
array("first_name" => new MongoRegex("/$arg/i")),
array("middle_name" => new MongoRegex("/$arg/i")),
array("last_name" => new MongoRegex("/$arg/i")),
array("email" => new MongoRegex("/$arg/i")),
array("guardian_name" => new MongoRegex("/$arg/i")),
array("phone1" => new MongoRegex("/$arg/i")),
array("dob" => new MongoRegex("/$arg/i")),
)
);
如果studentTbl中有一个文档,其中包含以下详细信息
first_name:" Pooja"
middle_name:" Mahavir"
last_name:" Sharma"
现在,如果我们给" Pooja"在$ args中,它应该取名所有名为" pooja"的学生,如果我们给" sharma"在$ args中,它应该取名为sharma的所有学生。如果$ args包含" poo",它应该获取所有名字包含" poo"无论是在结尾,开始还是在中间,如poonam"或" tapoo"等等,如果给出全名,那么它应该相应地获取,如果$ args包含" pooja sharma",它也应该根据名字和姓氏获取。 上面的代码是获取所有记录。另请注意,应保留其他搜索条件。
任何帮助都应该受到赞赏。