sql >> データベース >  >> NoSQL >> MongoDB

MongoDBアグリゲーションの効率的なページネーション?

    MongoDBカーソルメソッド内(つまり、find()を使用する場合 )limitのように 、sortskip 任意の順序で適用できます=>順序は関係ありません。 find() 変更が適用されたカーソルを返します。ソートは常に制限の前に実行され、スキップも制限の前に実行されます。つまり、順序は次のとおりです。並べ替え->スキップ->制限

    集約フレームワークはDBカーソルを返しません。代わりに、ドキュメントを返します 集計の結果。パイプラインの各ステップで中間結果を生成することで機能するため、操作の順序が非常に重要になります。

    MongoDBは、内部で実装されているため、カーソル修飾子メソッドの順序をサポートしていないと思います。

    結果のみのドキュメントが1つしかないため、集計フレームワークの結果をページ分割することはできません。スキップと制限を使用して通常のクエリをページ分割することもできますが、インデックスを使用すると効率的であるため、範囲クエリを使用することをお勧めします。

    更新:

    v2.6以降、Mongoアグリゲーションフレームワークは単一のドキュメントではなくカーソルを返します。比較: v2.4 および v2.6 。



    1. Node.jsを使用してMongodbに多くのレコードを挿入する正しい方法

    2. Mongo ObjectIDs:実際に使用しても安全ですか?

    3. Trelloのようなカードやリストを再配置する方法は?

    4. Apache HBaseレプリケーション:操作の概要