AI エージェント向け: ドキュメントインデックスは https://www.mongodb.com/ja-jp/docs/llms.txt で利用できます。すべてのページの markdown バージョンは、いずれかの URL パスに .md を追加することで利用できます。
Docs Menu

cursor.min()(mongoshメソッド)

cursor.min()

重要

mongosh メソッド

このページでは、mongosh メソッドについて記載しています。これは Node.js などの言語固有のドライバーのドキュメントではありません

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

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

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

Parameter
タイプ
説明

indexBounds

ドキュメント

インデックス キーの包括的下限。

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

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

注意

インデックスの使用

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

min()は主にmongosプロセスをサポートするために存在します。

このメソッドは、次の環境でホストされている配置で使用できます。

  • MongoDB Atlas はクラウドでの MongoDB 配置のためのフルマネージド サービスです

注意

このコマンドは、すべての MongoDB Atlas クラスターでサポートされています。すべてのコマンドに対する Atlas のサポートについては、「サポートされていないコマンド」を参照してください。

  • MongoDB Enterprise: サブスクリプションベースの自己管理型 MongoDB バージョン

  • MongoDB Community: ソースが利用可能で、無料で使用できる自己管理型の MongoDB のバージョン

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

db.products.find( { _id: { $in: [ 6, 7 ] } } ).min( { price: Decimal128("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" : Decimal128("1.99") },
{ "_id" : 2, "item" : "apple", "type" : "fuji", "price" : Decimal128("1.99") },
{ "_id" : 3, "item" : "apple", "type" : "jonagold", "price" : Decimal128("1.29") },
{ "_id" : 4, "item" : "apple", "type" : "jonathan", "price" : Decimal128("1.29") },
{ "_id" : 5, "item" : "apple", "type" : "mcintosh", "price" : Decimal128("1.29") },
{ "_id" : 6, "item" : "apple", "type" : "cortland", "price" : Decimal128("1.29") },
{ "_id" : 7, "item" : "orange", "type" : "cara cara", "price" : Decimal128("2.99") },
{ "_id" : 9, "item" : "orange", "type" : "satsuma", "price" : Decimal128("1.99") },
{ "_id" : 8, "item" : "orange", "type" : "valencia", "price" : Decimal128("0.99") },
{ "_id" : 10, "item" : "orange", "type" : "navel", "price" : Decimal128("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" : Decimal128("1.29") }
    { "_id" : 4, "item" : "apple", "type" : "jonathan", "price" : Decimal128("1.29") }
    { "_id" : 5, "item" : "apple", "type" : "mcintosh", "price" : Decimal128("1.29") }
    { "_id" : 7, "item" : "orange", "type" : "cara cara", "price" : Decimal128("2.99") }
    { "_id" : 10, "item" : "orange", "type" : "navel", "price" : Decimal128("1.39") }
    { "_id" : 9, "item" : "orange", "type" : "satsuma", "price" : Decimal128("1.99") }
    { "_id" : 8, "item" : "orange", "type" : "valencia", "price" : Decimal128("0.99") }
  • { price: 1 }min()インデックス の順序付けを使用すると、price 1.39max()price1.99は のインデックスキーの限界が に等しいドキュメントにクエリを制限し、 はクエリを 未満のドキュメントに制限します。 のインデックスキーの限界が に等しい:

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

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

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