我在shell中使用过这个查询。它工作正常。如果我在php中使用它,它会显示错误
<?php
$m = new Mongo();
$db = $m->foo;
$collection = $db->base;
$query = array( "ro" => '/^a/' );
$cursor = $collection->find($query);
foreach ($cursor as $obj) {
echo $obj["ro"] . "<br/>";
}
我不确定,db.base.find({"ro": /^a/}).limit(10);
查询是否可以在php中工作?
答案 0 :(得分:6)
您需要使用MongoRegex()...
请参阅此处的文档:http://php.net/manual/en/class.mongoregex.php
所以PHP代码就像......
$regex = new MongoRegex("/^a/");
$where = array('ro' => $regex);
$cursor = $collection->find($where);
答案 1 :(得分:0)
如果使用mongodb扩展名,则应使用MongoDB \ BSON \ Regex()而不是MongoRegex()
$regex = new \MongoDB\BSON\Regex("^a");
$where = array('ro' => $regex);
$cursor = $collection->find($where)
您不必使用“/”[regex]“/”。只是正则表达式工作正常
答案 2 :(得分:-1)
在一行中:
$mCollection->find(array("date" => new MongoRegex("/2011-10-25/")));