getDefaultRWConcern
定义
getDefaultRWConcern
getDefaultRWConcern
管理命令检索全局默认读关注或写关注设置。对于分片的集群,在
getDefaultRWConcern
上发出mongos
}。
兼容性
此命令可用于以下环境中托管的部署:
MongoDB Atlas:用于云中 MongoDB 部署的完全托管服务
注意
所有 MongoDB Atlas 集群都支持此命令。有关 Atlas 对所有命令的支持的信息,请参阅不支持的命令。
MongoDB Enterprise:基于订阅、自我管理的 MongoDB 版本
MongoDB Community:源代码可用、免费使用且可自行管理的 MongoDB 版本
语法
该命令采用以下形式:
db.adminCommand( { getDefaultRWConcern: 1 , inMemory: <boolean>, comment: <any> } )
命令字段
该命令具有以下字段:
字段 | 类型 | 说明 |
---|---|---|
int | 设置为 | |
布尔 | 可选。 设置为 设置为 | |
comment | any | 可选。用户提供的待附加到该命令的注释。设置后,该注释将与该命令的记录一起出现在以下位置:
注释可以是任何有效的 BSON 类型(字符串、整型、对象、数组等)。 |
输出
输出可能包括以下字段:
字段 | 类型 | 说明 |
---|---|---|
object | 全局默认的写关注配置。 如果部署没有全局默认写关注设置,则此字段不会出现在 | |
object | 全局默认的读关注配置。 如果部署没有全局默认读关注设置,则此字段不会出现在 | |
字符串 | 默认写关注的来源。默认情况下,该值为 | |
字符串 | 默认读关注的来源。默认情况下,该值为 | |
时间戳 | 上次修改任何全局默认读关注或写关注设置时的操作时间戳。如果曾经为集群设置过默认值,则存在。 | |
Date | 管理员上次设置全局默认读关注或写关注的挂钟日期。此值仅供参考,不应用于任何近期比较。 | |
Date |
行为
注意
需要 featureCompatibilityVersion 4.4+
副本集或分片集群中的每个 mongod
都必须将 featureCompatibilityVersion 设置为至少 4.4
,才能使用 getDefaultRWConcern
。如果您将部署的 featureCompatibilityVersion 从 4.4
降级为 4.2
,则所有集群范围的读关注和写关注默认设置都将丢失,但是 mongos
实例可能会继续应用默认设置长达 30 秒。
副本集
您可以针对副本集的任何数据承载节点发出 getDefaultRWConcern
(即,不针对仲裁节点)。
如果从节点尚未从主节点复制最新更改,则它可以返回全局默认设置的“过时”版本。
分片集群
向集群中的 mongos
发出 setDefaultRWConcern
。
每个 mongos
都会定期刷新全局默认设置的本地副本。如果 mongos
在最近更新全局默认设置后尚未刷新其本地副本,或者从滞后的配置服务器从节点获取其设置,则它可以返回全局默认设置的“过时”版本。
全局默认设置不会传播到单个分片。不能对分片运行 getDefaultRWConcern
。
访问控制
对于在自管理部署上实施身份验证的副本集或分片的集群, getDefaultRWConcern
要求经过身份验证的用户具有getDefaultRWConcern
权限动作。
clusterManager
或 clusterMonitor
内置角色提供运行 getDefaultRWConcern
所需的权限。
例子
以下操作检索 mongod
当前配置的全局默认读关注和写关注。
db.adminCommand({ "getDefaultRWConcern": 1 })
该操作返回类似于以下内容的输出:
{ "defaultWriteConcern" : { "w" : "majority" }, "defaultReadConcern" : { "level" : "majority" }, "defaultWriteConcernSource" : "global", "defaultReadConcernSource" : "global", "updateOpTime" : Timestamp(1586290895, 1), "updateWallClockTime" : ISODate("2020-04-07T20:21:41.849Z"), "localUpdateWallClockTime" : ISODate("2020-04-07T20:21:41.862Z"), "ok" : 1, "$clusterTime" : { ... } "operationTime" : Timestamp(1586290925, 1) }