当前位置:  开发笔记 > 编程语言 > 正文

MongoDB php $ in和$ regex

如何解决《MongoDBphp$in和$regex》经验,为你挑选了1个好方法。

我正在尝试将$ regex和$ in结合起来进行简单搜索.

例如,我有这种用户查询:

$user_query = "for focus red";

在我的每个文档的mongodb集合中,我有一个关键字字段.我想得到字段关键字所在的文档:

{
    keywords :
        [0] => ford,
        [1] => focus,
        [2] => red
}

正如您所看到的,用户犯了一个错误,并键入"for"而不是"ford".

我可以得到的结果$in,如果用户键入福特,但我不知道如何结合$regex$in,我已经看过了MongoDB的doc和PHP蒙戈文档.



1> Janis..:

有我的快速片段:

$user_query = preg_replace("/[[:blank:]]+/"," ", $user_query);
$arr_query = explode(' ', $user_query);

if (count($arr_query) > 1) {
    $tmp = array();

    foreach ($arr_query as $q) {
        $tmp[] = new MongoRegex( "/". $q ."/" );
    }

    $who['keywords'] = array('$in' => $tmp);

} else {
    $who['keywords'] = new MongoRegex( "/". $user_query ."/" );
}

$db->collection->find( $who );

推荐阅读
勤奋的瞌睡猪_715
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有