2011-02-15 7 views
5

He utilizado esta consulta en shell. Funcionó bien Si lo uso en php, que me muestra un errorNecesito usar una consulta similar en mongo 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/>"; 
} 

No estoy seguro, trabajará db.base.find({"ro": /^a/}).limit(10); consulta en php ??

+1

¿Qué error? Cada vez que dices algo como "me muestra un error", seguramente ayuda publicar el mensaje de error. – netcoder

Respuesta

6

Es necesario utilizar MongoRegex() ...

Ver documentos aquí: http://php.net/manual/en/class.mongoregex.php

Así que el código PHP sería algo así como ...

$regex = new MongoRegex("/^a/"); 
$where = array('ro' => $regex); 
$cursor = $collection->find($where); 
-1

en una sola línea:

$mCollection->find(array("date" => new MongoRegex("/2011-10-25/"))); 
0

Si usa la extensión mongodb, debe usar MongoDB \ BSON \ Regex() en lugar de MongoRegex()

$regex = new \MongoDB\BSON\Regex("^a"); 
$where = array('ro' => $regex); 
$cursor = $collection->find($where) 

Usted no tiene que utilizar "/" [expresión regular] "/". Solo la expresión regular funciona bien

Cuestiones relacionadas