cursor.readConcern()
On this page
Definition
cursor.readConcern(level)
Important
mongo Shell Method
This page documents the
mongo
shell method, and does not refer to the MongoDB Node.js driver (or any other driver) method. For corresponding MongoDB driver API, refer to your specific MongoDB driver documentation instead.New in version 3.2.
Specify a read concern for the
db.collection.find()
method.The
readConcern()
method has the following form:db.collection.find().readConcern(<level>) The
readConcern()
method has the following parameter:ParameterTypeDescriptionlevel
stringRead concern level.
Possible read concern levels are:
"local"
. This is the default read concern level for read operations against primary and read operations against secondaries when associated with causally consistent sessions."available"
. This is the default for reads against secondaries when when not associated with causally consistent sessions. The query returns the instance's most recent data."majority"
. Available for replica sets that use WiredTiger storage engine."linearizable"
. Available for read operations on theprimary
only.
For more formation on the read concern levels, see Read Concern Levels.
Considerations
"majority"
Read Concern
To use read concern level of "majority"
, replica
sets must use WiredTiger storage engine.
You can disable read concern "majority"
for a deployment
with a three-member primary-secondary-arbiter (PSA) architecture;
however, this has implications for change streams (in MongoDB 4.0 and
earlier only) and transactions on sharded clusters. For more information,
see Disable Read Concern Majority.
Read Your Own Writes
Starting in MongoDB 3.6, you can use causally consistent sessions to read your own writes, if the writes request acknowledgement.
Prior to MongoDB 3.6, in order to read your own writes you must issue
your write operation with { w: "majority" }
write concern, and then issue your read operation with
primary
read preference, and either
"majority"
or "linearizable"
read concern.
Linearizable Read Concern Performance
When specifying linearizable read concern
, always use maxTimeMS()
in case
a majority of data bearing members are unavailable.
db.restaurants.find( { _id: 5 } ).readConcern("linearizable").maxTimeMS(10000)