如何使用mongodb实现搜索过滤器查询?

时间:2015-11-24 07:12:48

标签: php mongodb codeigniter

我的搜索过滤器用户很少,如下图所示。用户可以选择任意一个或两个

enter image description here

这些是我的过滤器语言,格式和状态我写了一个查询,但它无法正常工作

$lang_id =2;
$format = ''; //user not selected
$status = ''; //user not selected
$request =  $collection->find(array
                            (  '$and' => array(
                                array(
                                    'language' => $lang_id ,
                                    ),
                                 array(
                                    'format' => $format,
                                    ),
                                array(
                                    'status' => $status,
                                    )

                                )
                            ));

我已经检查过或者也没有工作

如果过滤器为空,则无需查找空字段,但如果不为空,则需要找到该字段。

请给我一个我在mongodb新手的解决方案

谢谢

1 个答案:

答案 0 :(得分:1)

作为上述问题的解决方案,请尝试执行以下代码段

    $lang_id = 2;
    $format = ''; //user not selected
    $status = ''; //user not selected
    $filter=array();
    if(!empty($lang_id))
    {
      $filter['language']=$lang_id;
    }
    if(!empty($format))
    {
      $filter['format']=$format;
    }
    if(!empty($status))
    {
      $filter['status']=$status;
    }

    $request =  $collection->find($filter);