Docs 菜单
Docs 主页
/
MongoDB Manual
/ / / /

defaultMaxTimeMS

在此页面上

  • 定义
  • 访问控制
  • 语法
  • 行为
  • 长时间运行的查询
  • 例子
  • 结果
defaultMaxTimeMS

8.0版本新增

适用于 mongodmongos

指定单个读取操作完成的默认时间限制(以毫秒为单位)。 如果查询指定了maxTimeMS()选项,则该值将覆盖defaultMaxTimeMS值。

defaultMaxTimeMS 适用于以下读取操作:

要修改集群参数,您必须以具有以下角色之一的用户身份进行身份验证

要为部署设置defaultMaxTimeMS ,请对admin数据库运行以下命令:

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

要查看defaultMaxTimeMS的当前值,请对admin数据库运行以下命令:

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

默认, defaultMaxTimeMS.readOperations为0 ,表示未设立默认查询超时。 如果没有默认查询超时,查询将一直运行,直到返回结果或失败。

如果查询指定了maxTimeMS()选项,则该值将覆盖defaultMaxTimeMS值。

如果您的部署需要运行长时间查询,例如分析节点查询,则必须使用maxTimeMS()在操作级别为这些查询指定超时。 如果不指定操作超时,这些查询将使用defaultMaxTimeMS超时,并且不会运行达到所需的时间。

以下命令将默认查询超时设置为5000毫秒:

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

要检查defaultMaxTimeMS的值,请运行以下命令:

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

为部署设立defaultMaxTimeMS后,请考虑以下查询:

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

第一个查询使用5的defaultMaxTimeMS值, 000毫秒。

第二个查询指定了maxTimeMS() ,它会覆盖defaultMaxTimeMS并导致查询在8 ( 000毫秒)后超时。

后退

changeStreamOptions