cursor.readConcern()

在本页面

Definition

  • cursor. readConcern(级别)
    • 3.2 版中的新功能。

db.collection.find()方法指定read concern

readConcern()方法具有以下形式:

db.collection.find().readConcern(<level>)

readConcern()方法具有以下参数:

ParameterTypeDescription
levelstringRead concern level.


可能的阅读关注级别为:
"local"。这是默认的阅读关注级别。
"available"。当未指定读取操作和因果一致的会话和“ level”时,这是针对次要对象的读取的默认值。查询返回实例的最新数据。
"majority"。可用于使用WiredTiger 存储引擎的副本集。
"linearizable"。仅可用于primary上的读取操作。
有关阅读关注级别的更多信息,请参阅阅读关注级别
对于"local"(默认)或"majority"读关注级别,您可以指定afterClusterTime选项以使读操作返回满足级别要求和在群集时间之后指定的数据。有关更多信息,请参见读取操作和因果一致的会话

Considerations

“多数”阅读关注

要使用read concern级别"majority",副本集必须使用WiredTiger 存储引擎和选举协议版本 1

从 MongoDB 3.6 开始,默认情况下启用对读取关注"majority"的支持。对于 MongoDB 3.6.1-3.6.x,您可以禁用阅读关注"majority"。有关更多信息,请参见禁用多数阅读关注

阅读您自己的文章

从 MongoDB 3.6 开始,如果写入请求确认,则可以使用因果一致的会话来读取自己的写入。

在 MongoDB 3.6 之前,您必须以{ w: "majority" }写入关注度发出写入操作,然后对读取操作使用"majority""linearizable"读取关注度,以确保单个线程可以读取自己的写入。

可线性化的阅读关注性能

当指定线性化阅读关注时,如果大多数数据承载成员不可用,请始终使用maxTimeMS()

db.restaurants.find( { _id: 5 } ).readConcern("linearizable").maxTimeMS(10000)

See also