我遇到了问题,那就是用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;
答案 0 :(得分:0)
直接在MongoDB中运行时,使用的是正则表达式:
{"title": /.*पंचायत*/}
请参阅,值字段中没有没有引号。但是,当您通过PHP运行此代码时,您将提供一个String值:
array("title" => "/.*पंचायत*/")
因此,在第一个查询中,您要查找标题字段包含(但不等于)的文档,而在第二个查询中,您要查找标题完全为“ /。”的文档。 /“
针对您的用例:
array("title" => new MongoRegex("/.*पंचायत*/i"))