我的搜索过滤器用户很少,如下图所示。用户可以选择任意一个或两个
这些是我的过滤器语言,格式和状态我写了一个查询,但它无法正常工作
$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新手的解决方案
谢谢
答案 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);