MongoCursor
PHP Manual

MongoCursor::batchSize

(PECL mongo >=1.0.11)

MongoCursor::batchSizeひとつの結果セットで返す結果の数を設定する

説明

public MongoCursor MongoCursor::batchSize ( int $num )

これは、クライアントに返すデータの量に関する MongoDB 側の制限を上書きすることはできません (つまり、たとえバッチサイズを 1,000,000,000 にしたとしても、MongoDB が返す結果は 4-16MB にしかならないということです)。

一貫性を確保するために、batchSize と limit の挙動は多少複雑になっていますが、 「期待通りに」動作します。規則としては、MongoCursor::limit()MongoCursor::batchSize() で設定したソフトリミットを ハードリミットが上書きするということです。 その後、設定されている値のうち小さいほうが優先されます。 以下に例を示します。

<?php

// ひとつのバッチで最大 20 件
$cursor->limit(-20)->batchSize(10);

// ひとつのバッチで最大 10 件
$cursor->limit(20)->batchSize(-10);

// 最初のバッチ。最大 10 件
$cursor->limit(10);

// 最初のバッチ。最大 10 件
$cursor->limit(10)->batchSize(20);

// 最初のバッチ。最大 10 件
$cursor->limit(20)->batchSize(10);


$cursor->limit(30)->batchSize(7)
// 28 件目まで処理を進めると、次に getNext() をコールしたときにデータベースと通信し、
// 2 件のドキュメントを含むバッチを要求します

?>

パラメータ

num

次のバッチで返す結果の数。

返り値

このカーソルを返します。

エラー / 例外

このカーソルの反復処理が始まっている場合に MongoCursorException をスローします。 この挙動は 1.0.12 からは変わり、いつでもこのメソッドがコールできるようになります。


MongoCursor
PHP Manual