2011-02-15 88 views
5

我已經在shell中使用了這個查詢。它運行良好。如果我在PHP中使用它,它讓我看到一個錯誤我需要在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/>"; 
} 

我不知道,會在PHP db.base.find({"ro": /^a/}).limit(10);查詢工作?

+1

什麼錯誤?無論何時您說出「顯示錯誤」這樣的內容,確實有助於實際發佈錯誤消息。 – netcoder 2011-02-15 21:45:02

回答

6

您需要使用MongoRegex()...

查看文檔在這裏:http://php.net/manual/en/class.mongoregex.php

所以PHP代碼會是這樣的......

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

在一個行:

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

如果您使用mongodb擴展,您應該使用MongoDB \ BSON \ Regex()而不是MongoRegex()

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

你不必使用「/」[正則表達式] 「/」。只是正則表達式工作正常