Mongodb查询在控制台中工作正常,但在PHP中不工作

时间:2019-07-10 08:54:35

标签: php mongodb

我遇到了问题,那就是用php语言运行mongodb查询,同时它可以正常工作并在控制台中返回结果,但是当我尝试用PHP语言实现时,它将返回空白数组。

请让我知道可能是什么问题?

以下查询在控制台中运行正常

db.mp_ms_details.find({
    $or : [ 
        {"title": /.*पंचायत*/},
        {"description": /.*पंचायत*/}
    ]       
})

使用PHP的Mongodb查询

         $cursor = $collection->find(array('$or' => array(
              array("title" => "/.*पंचायत*/"),
              array("description" => "/.*पंचायत*/")
            )));
            $response = $cursor->toArray();
            echo count($response);die;

1 个答案:

答案 0 :(得分:0)

直接在MongoDB中运行时,使用的是正则表达式:

{"title": /.*पंचायत*/}

请参阅,值字段中没有没有引号。但是,当您通过PHP运行此代码时,您将提供一个String值:

array("title" => "/.*पंचायत*/")

因此,在第一个查询中,您要查找标题字段包含(但不等于)的文档,而在第二个查询中,您要查找标题完全为“ /。”的文档。 /“

针对您的用例:

array("title" => new MongoRegex("/.*पंचायत*/i"))