2017-01-02 12 views
2

我必須使用Mongodb和PHP,並試圖從使用PHP的mongocollection獲取數據。用php返回記錄的下面的mongoquery成功。但我想爲以下查詢設置限制。如何將limit()設置爲MongoQuery使用PHP?

PHP代碼:

$query = array("\$and"=>array(array('fld'=> array("\$in"=> array('4', '14', '20'))), array('stat'=>array("\$eq"=>"A")))); 

$cursor = $this->collection->find($query); 

我也曾嘗試follwing方式

$query = array("\$and"=>array(array('fld'=> array("\$in"=> array('4', '14', '20'))), array('stat'=>array("\$eq"=>"A")))).limit(2); 

但我得到致命錯誤

調用未定義功能限制()

如何在上述查詢中使用limit()

+1

'極限()'是MongoCursor對象的方法,而不是陣列 –

+0

'$光標= $這個 - >系列 - >找到($查詢) - >限制(2)'是否正確? @Yury Fedorov –

+0

它看起來不錯,嘗試一下 –

回答

2

在PHP中,limit()MongoCursor類的一種方法,而不是數組。你需要得到一個光標,然後再調用其limit()方法:

$collection->find($query)->limit(2); 

您還可以添加選項排列您find()電話與limit參數:

$collection->find($query, ['limit' => 2]); 
0

新的PHP的MongoDB庫沒有按」 t像老的PHP Mongo庫那樣在遊標上有limit()sort()方法。這些現在必須在查詢時被指定,例如:

$collection->find($query, [ 
    'limit' => 10, 
    'sort' => [ 'date' => -1 ], 
    'projection' => [ 
     '_id' => 1, 
     'description' => 1, 
    ] 
];