Docs Menu
Docs Home
/
MongoDB マニュアル
/ / /

cursor.min()

項目一覧

  • 定義
  • 動作
cursor.min()

重要

mongosh メソッド

これは mongoshメソッドです。 これは、 Node.jsまたはその他のプログラミング言語固有のドライバー メソッドのドキュメントではありません

ほとんどの場合、 mongoshメソッドはレガシーの mongo shell メソッドと同じように動作します。 ただし、一部のレガシー メソッドはmongoshでは利用できません。

レガシーmongo shell のドキュメントについては、対応する MongoDB Server リリースのドキュメントを参照してください。

MongoDB API ドライバーについては、各言語のMongoDB ドライバードキュメント を参照してください。

の結果を制限するために、特定のインデックスのfind() 包括的 下限を指定します。min()は、複合キー インデックスの下限を指定する方法を提供します。

min()メソッドには次のパラメーターがあります。

Parameter
タイプ
説明
indexBounds
ドキュメント
インデックス キーの包括的下限。

indexBoundsパラメータのプロトタイプ形式は次のとおりです。

{ field1: <min value>, field2: <min value2>, fieldN:<min valueN> }

注意

インデックスの使用

max()メソッドでインデックスを使用するには、 hint()メソッドを使用して使用するインデックスを指定する必要があります。これは、 find()クエリが_idフィールドの等価条件である場合に実行されます。

Tip

以下も参照してください。

min()は主にmongosプロセスをサポートするために存在し、クエリ修飾子$minを囲む shell ラッパーです。

注意

v 3.2 で廃止予定

v 3.2以降、 $min演算子はmongoshでは非推奨です。 mongoshでは、代わりにcursor.min()を使用してください。

min()にはフィールドのインデックスが必要であり、クエリにこのインデックスを使用するように強制されるため、可能であればクエリに$gte演算子を使用することをお勧めします。 次の例で考えてみましょう。

db.products.find( { $in: [ 6, 7 ] } ).min( { price: NumberDecimal("1.39") } ).hint( { price: 1 })

クエリは、 _idのインデックスがより優れている場合でも、 priceフィールドのインデックスを使用します。

min()max()を使用して範囲を指定する場合:

$min演算子と$max演算子は、システムが通常のクエリ計画を回避する必要があることを示します。 代わりに、インデックスの限界が$min$maxに指定された値によって明示的に指定されるインデックススキャンを構築します。

警告

2 つの境界のいずれかが指定されていない場合、クエリプランは一方では無制限のインデックススキャンになります。 これはどちらの演算子も含まないクエリ、または両方の演算子を使用してインデックス スキャンをより厳密に制限するクエリと比較して、パフォーマンスを低下させる可能性があります。

find()クエリが_idフィールド{ _id: <value> }の等価条件でない限り、min() を実行するにはhint()メソッドでインデックスを明示的に指定する必要があります

以下の例では、次のドキュメントを含むproductsという名前のサンプル コレクションを作成します。

db.products.insertMany([
{ "_id" : 1, "item" : "apple", "type" : "honey crisp", "price" : NumberDecimal("1.99") },
{ "_id" : 2, "item" : "apple", "type" : "fuji", "price" : NumberDecimal("1.99") },
{ "_id" : 3, "item" : "apple", "type" : "jonagold", "price" : NumberDecimal("1.29") },
{ "_id" : 4, "item" : "apple", "type" : "jonathan", "price" : NumberDecimal("1.29") },
{ "_id" : 5, "item" : "apple", "type" : "mcintosh", "price" : NumberDecimal("1.29") },
{ "_id" : 6, "item" : "apple", "type" : "cortland", "price" : NumberDecimal("1.29") },
{ "_id" : 7, "item" : "orange", "type" : "cara cara", "price" : NumberDecimal("2.99") },
{ "_id" : 9, "item" : "orange", "type" : "satsuma", "price" : NumberDecimal("1.99") },
{ "_id" : 8, "item" : "orange", "type" : "valencia", "price" : NumberDecimal("0.99") },
{ "_id" : 10, "item" : "orange", "type" : "navel", "price" : NumberDecimal("1.39") }
])

コレクションに次のインデックスを作成します。

db.products.createIndexes( [
{ "item" : 1, "type" : 1 },
{ "item" : 1, "type" : -1 },
{ "price" : 1 }
] )
  • { item: 1, type: 1 }インデックスの順序付けを使用して、 min()は次のように、 itemappleに等しく、かつtypejonagoldに等しいインデックスキーの限界以上にあるドキュメントにクエリを制限します。以下は次のとおりです。

    db.products.find().min( { item: 'apple', type: 'jonagold' } ).hint( { item: 1, type: 1 } )

    このクエリでは次のドキュメントが返されます。

    { "_id" : 3, "item" : "apple", "type" : "jonagold", "price" : NumberDecimal("1.29") }
    { "_id" : 4, "item" : "apple", "type" : "jonathan", "price" : NumberDecimal("1.29") }
    { "_id" : 5, "item" : "apple", "type" : "mcintosh", "price" : NumberDecimal("1.29") }
    { "_id" : 7, "item" : "orange", "type" : "cara cara", "price" : NumberDecimal("2.99") }
    { "_id" : 10, "item" : "orange", "type" : "navel", "price" : NumberDecimal("1.39") }
    { "_id" : 9, "item" : "orange", "type" : "satsuma", "price" : NumberDecimal("1.99") }
    { "_id" : 8, "item" : "orange", "type" : "valencia", "price" : NumberDecimal("0.99") }
  • { price: 1 }min()インデックス の順序付けを使用すると、price 1.39max()price1.99は のインデックスキーの限界が に等しいドキュメントにクエリを制限し、 はクエリを 未満のドキュメントに制限します。 のインデックスキーの限界が に等しい:

    db.products.find().min( { price: NumberDecimal("1.39") } ).max( { price: NumberDecimal("1.99") } ).hint( { price: 1 } )

    このクエリでは次のドキュメントが返されます。

    { "_id" : 10, "item" : "orange", "type" : "navel", "price" : NumberDecimal("1.39") }

戻る

cursor.maxTimeMS

項目一覧