mongodb sort method with examples
Sort()を使用したMongoDBでのクエリ変更の詳細な洞察。
uatテストケースの書き方
MongoDB内のカーソルとそのメソッド この前のチュートリアルで詳細に説明されました MongoDBトレーニングシリーズ 。
このチュートリアルでは、 MongoDBのソートメソッド。
ソート方法は、ドキュメントに優先順位を付けたり、mongoコレクション内でドキュメントの順序を並べ替えたりするために使用されます。簡単に言うと、sortメソッドは、特定の基準に一致するすべてのドキュメントを配置し、結果を返します。
ご存知のように、レコードはカーソルの形式で返され、ソートメソッドがカーソルに適用されます。したがって、sortメソッドをカーソルと組み合わせると、特定の順序でドキュメントが返されます。
Sortメソッドには、フィールドとその値を渡す必要があるパラメーターが1つだけあります。パラメータは次のようなJSON形式で渡されます {フィールド:値} sortメソッドの括弧内。複数のフィールドと値を渡して、レコードを並べ替えることもできます。
学習内容:
昇順と降順の並べ替え
この方法では、ドキュメントを昇順と降順で並べ替えることができます。ソートフィールドのパラメータとして「1」を渡すと、ドキュメントが昇順で配置されます。フィールドのパラメータとして「-1」を渡すと、すべてのレコードが降順で返されます。
構文
db.collection.find().sort({field:order})
コード
db.staff.find().sort({staff_id:1}) db.staff.find().sort({staff_id:-1})
図1:Mongoシェル内
図2:Robo3Tの場合
複数のフィールドを同時に並べ替えることもできます。次のコードを使用して、このシナリオを観察できます。
構文
任意のサイトのフルバージョンからの無料ビデオダウンローダー
db.collection.find().sort({field:order, field:order })
並べ替えの制限
Mongo DBは仮想メモリ内のすべてのレコードをソートし、データセットに適用される条件があります。条件は、レコードが32メガバイト未満である必要があることです。メモリ使用量が多いためにソートが実行されない場合があります。
32 MBを超えるメモリを持つドキュメントの大きなグループがある場合、ソートは実行されないとします。
代わりに、このクエリを削除する原因となるエラーが返されます。この状況を最適化するには、制限と並べ替えを組み合わせて使用するか、適切なインデックスを使用します。
並べ替え結果の制限
sortメソッドをlimitメソッドと一緒に使用して、制限されソートされたレコードをまとめることができます。このようにして、Mongo DBでのクエリ操作を最適化し、メモリ消費とともに速度を上げることができます。
top-kソートアルゴリズムを使用してクエリを最適化することもできます。このアルゴリズムでは、レコードが32MBを超えるメモリを消費するたびに、クエリは自動的に削除されます。
結論
ソート方法は、レコードを特定の順序で配置するのに役立ちます。ドキュメントは昇順と降順で取得できます。また、さまざまなフィールドで並べ替え方法を使用して、複数の順序を適用することもできます。
フィールドのアルファベット値の場合、ソートは「1」と「-1」のアルファベット順に適用されます。たとえば、1つはAからZまでのすべてのレコードを配置し、負の1つはZからAまでのレコードを配置します。
MongoDBパフォーマンスの詳細については、今後のチュートリアルにご注目ください。
前のチュートリアル | 次のチュートリアル