2017-01-02 6 views
2

私はphpでMongodbを使用しなければならず、phpを使用してmongocollectionからデータを取得しようとしました。 phpでの次のmongoqueryは正常に記録を返します。しかし、私は次のクエリの制限を設定したい。PHPを使用してMongoQueryにlimit()を設定するには?

PHPコード:

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

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

私も道

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

をfollwing試してみました。しかし、私は致命的なエラーを得た

未定義の機能制限()への呼び出し

上記のクエリでlimit()を使用するには?

+1

'リミット()'はMongoCursorオブジェクトのではなく、配列 –

+0

'$カーソル=の$ this - >コレクション - >検索する($クエリ)の方法であり、 - > limit(2) 'は正しいですか? @ Yury Fedorov –

+0

それは正しいように見える、それを試してください –

答えて

2

PHPでは、limit()は、MongoCursorクラスのメソッドであり、配列ではありません。

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

新しいPHP MongoDBのライブラリー」はdoesnの:またlimitパラメータを使用してfind()コールにオプションの配列を追加することができます

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

:あなたは、最初のカーソルを取得し、そのlimit()メソッドを呼び出す必要があります古いPHP Mongoライブラリのように、カーソルにlimit()sort()のメソッドがあります。これらは現在、例えば、クエリ時に指定する必要があります。

$collection->find($query, [ 
    'limit' => 10, 
    'sort' => [ 'date' => -1 ], 
    'projection' => [ 
     '_id' => 1, 
     'description' => 1, 
    ] 
]; 
関連する問題