我需要在mongo php中使用类似的查询

时间:2011-02-15 21:39:50

标签: php regex mongodb

我在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中工作?

3 个答案:

答案 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/")));