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

デフォルトMaxTimeMS

defaultMaxTimeMS

バージョン8.0の新機能。

Atlas クラスターとセルフホスト型配置

個々の読み取り操作が完了するまでのクラスター全体のデフォルトの時間制限(ミリ秒単位)を指定します。クエリで maxTimeMS() オプションが指定されている場合、その値は defaultMaxTimeMS の値を上書きします。

defaultMaxTimeMS 次の読み取り操作に適用されます。

クラスター パラメーターを変更するには、次のいずれかのロールを持つユーザーとして認証する必要があります。

配置用にdefaultMaxTimeMSを設定するには、 adminデータベースで次のコマンドを実行します。

db.adminCommand(
{
setClusterParameter: {
defaultMaxTimeMS: { readOperations: <value> }
}
}
)

defaultMaxTimeMSの現在の値を表示するには、 adminデータベースで次のコマンドを実行します。

db.adminCommand( { getClusterParameter: "defaultMaxTimeMS" } )

デフォルトでは 、 defaultMaxTimeMS.readOperationsは0であり、デフォルトのクエリ タイムアウトは設定されていません。 デフォルトのクエリ タイムアウトがない場合、クエリは結果を返すか失敗するまで実行されます。

クエリでmaxTimeMS()オプションが指定されている場合、その値はdefaultMaxTimeMSの値を上書きします。

注意

defaultMaxTimeMS 読み取り操作にのみ適用されます。

$out または $merge ステージを含む集計は書き込み (write) 操作を実行しますので、defaultMaxTimeMS の対象にはなりません。maxTimeMS() の値は、これらの集計に引き続き適用されます。

If your deployment needs to run long queries, such as analytics node queries, you must specify a timeout for those queries at the operation level using maxTimeMS(). If you don't specify an operation timeout, those queries use the defaultMaxTimeMS timeout, and won't run for the required amount of time.

次のコマンドは、デフォルトのクエリ タイムアウトを5000ミリ秒に設定します。

db.runCommand( {
setClusterParameter: {
defaultMaxTimeMS: { readOperations: 5000 }
}
} )

defaultMaxTimeMSの値を確認するには、次のコマンドを実行します。

db.adminCommand( { getClusterParameter: "defaultMaxTimeMS" } )
{
"clusterParameters" : [
{
"_id" : "defaultMaxTimeMS",
"clusterParameterTime" : Timestamp(1711564868, 17),
"readOperations" : Long(5000)
}
],
"ok" : 1,
"$clusterTime" : {
"clusterTime" : Timestamp(1712161244, 1),
"signature" : {
"hash" : BinData(0,"AAAAAAAAAAAAAAAAAAAAAAAAAAA="),
"keyId" : Long(0)
}
},
"operationTime" : Timestamp(1712161244, 1)
}

配置にdefaultMaxTimeMSを設定したら、以下のクエリを検討します。

db.test.find( { name: "Carol" } )
db.test.find( { name: "Carol" } ).maxTimeMS( 8000 )

最初のクエリでは、 defaultMaxTimeMSの 値、5000 ミリ秒が使用されます。

2 番目のクエリではmaxTimeMS()を指定します。これによりdefaultMaxTimeMSが上書きされ、クエリは8 、 000ミリ秒後にタイムアウトします。