mgo.v2 を使用した MongoDB での効率的なページング
MongoDB の mgo.v2 ドライバーは、Query を使用したクエリ結果のページングの組み込みサポートを提供します。 Skip() と Query.Limit()。ただし、MongoDB がすべてのドキュメントを反復処理して指定された数をスキップするため、これらのメソッドは大きな結果セットの場合は非効率的になります。
効率的なページングを実現するには、MongoDB のcursor.min() 機能を利用できます。カーソル値を指定すると、MongoDB は結果リストの指定されたインデックス エントリに直接ジャンプできます。残念ながら、mgo.v2 には、cursor.min() の直接サポートがありません。
Database.Run() を使用した解決策
代わりに、Database.Run() を使用できます。 ) メソッドを使用して、cursor.min() をサポートする find コマンドを含む MongoDB コマンドを実行します。このコマンドは、bson.D を使用して手動で構築し、カスタム構造体で結果をキャプチャできます。
MinQuery を使用する
このプロセスは、github.com/ を使用して簡略化できます。 icza/minquery パッケージ。 MinQuery は、cursor.min() サポートを使用して MongoDB 検索コマンドの構成と実行を簡素化するラッパーを提供します。
実装
実装には以下が含まれます:
使用の利点minquery
以上がmgo.v2 を使用して MongoDB で効率的なページングを実現するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。