2011-12-15 9 views
1

バージョン1.9以降、pymongoはカーソル操作のバッチサイズを変更するオプションを追加しました。description hereを参照してください。pymongoのCursor.batch_size(size)に 'size'とは何ですか?

しかし、彼らは、このサイズが意味するものはどこにも言及していません。これは一度にフェッチするレコードの数ですか?それともこの絶対的なサイズですか?

また、カーソルのデフォルトサイズはどのくらいですか?カーソルについては__dict__をチェックし、それはbatch_sizeが0であると言います。

答えて

4

バッチサイズは、より多くの結果を取得するためにgetMoreメッセージを発行する前にカーソルで取得される結果の数を指します。デフォルトは101ドキュメントです。

編集: 申し訳ありませんが、私は明確にすべき - デフォルトは実際にサーバによって設定されたが、現在の最新のリリースでそれがgetmoresで101

+0

です(すなわち、第1の後、後続のラウンドトリップ)が101ありませんドキュメントのデフォルトの制限値を超えると、サーバは一度に最大約4MBのドキュメントを返します。 – dcrosta

+0

@dcrosta - 後続のgetmoresは正しく設定されたbatch_sizeを尊重しますか?例えば、 batch_sizeが1000に設定されていて、それが4MBを超える場合、それでも4MBに制限されますか、それとも1000をすべてフェッチしますか? – Akash

+0

@Akash Mongoは、返される累積文書が4MB、batch_sizeまたはlimit、または101個の文書のうち最小のもの以上になると、クエリまたはgetmoreのいずれかに応答します(最初のクエリの場合のみ'batch_size'や' limit'セットはありません)。 – dcrosta