0

mongoコレクションをバッチでクエリする最も効率的な方法は何ですか?たとえば、SQLでは次のようなことをします。

SELECT * FROM Foo WHERE id > {{floor}} limit 1000;

私はここで概説されているように何かをすることができることを発見しました

しかし、スキップについての大きな警告は、私がそれを使うべきではないと私に思わせます。(コレクションが問題になるほど大きいと仮定します)。

私のコレクションには、自動生成された_idフィールド以外にインデックスがありません。それと$gt$ltを使用する方法があるかどうかはわかりません。

重要な場合は、秘密のソースが組み込まれている場合に備えて、Casbahドライバーを使用します。

4

1 に答える 1

2

その SQL クエリの mongo へのリテラル翻訳は次のとおりです。

db.foo.find({"id": {"$gt": floor}}).limit(1000)

このクエリは、フィールドのインデックスによって提供されます (または、名前付きの列の代わりにその列を使用する場合idは、デフォルトのインデックスによって提供されます)。_idid

にはパフォーマンス上の問題はありませんが、サーバーが結果を返し始める前に多くのレコードを反復処理する必要があるため、値が非常に大きい場合はパフォーマンスが低下する可能性がありますlimit()skip()

于 2012-04-04T21:10:53.073 に答える