文档菜单
文档首页
/
MongoDB 手册
/ / / /

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 )

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

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

返回

changeStreamOptions