MongoDBにおけるネストされたドキュメントのページネーション方法は?
MongoDBでは、集約パイプラインを使用して、ネストしたドキュメントのページングを実行できます。
実現方法の一つは次のとおりです。
- $unwind演算子を使って埋め込みドキュメントを個別のドキュメントに展開します。
- ページ送りオフセットを実現するため、skip オペレータを利用して最初のドキュメントをスキップします。
- $limit演算子で返されるドキュメント数を制限することで、ページネーションのサイズを制御します。
以下のコードスニペットは、埋め込みドキュメントをページネーションするサンプルアグリゲーションパイプラインです。
db.collection.aggregate([
// 将内嵌文档展开为单独的文档
{ $unwind: "$embeddedDocuments" },
// 跳过前10个文档,实现分页的偏移
{ $skip: 10 },
// 限制返回的文档数量,实现分页的大小控制
{ $limit: 10 }
])
上記コードスニペットにおいて、collectionはあなたのコレクション名、embeddedDocumentsは埋め込みドキュメントのフィールド名です。$unwind演算子を使用して埋め込みドキュメントを個々のドキュメントに展開した後、$skip演算子を使用して最初のいくつかのドキュメントをスキップし、$limit演算子を使用して返されるドキュメントの数を制限することで、ページネーション機能を実現できます。
データモデルや要件によって特有の実装は異なる場合があるため、これらは単なる実装可能性の1つにすぎないことに注意してください。