Read Preference determines which replica set member to read from, while Read Concern controls the consistency and isolation level of the data being read.
Read Preference and Read Concern address two different dimensions of read operations in MongoDB. Read Preference is about routing — it tells the driver which replica set members are eligible to handle the read operation (e.g., primary, secondary, nearest). Read Concern is about consistency — it controls how the data is returned, ensuring a certain level of isolation and durability . The official MongoDB documentation is explicit: "不要将读关注与读偏好相混淆,后者处理从何处读取数据的问题" (Do not confuse read concern with read preference; the latter deals with the question of where to read data from) .
Purpose: Read Preference controls routing (which node); Read Concern controls consistency (which data)
Scope: Read Preference applies only to replica sets and sharded clusters; Read Concern applies to all deployments but has different levels for replica sets vs sharded clusters
Available values: Read Preference modes include primary, secondary, primaryPreferred, secondaryPreferred, nearest ; Read Concern levels include local, majority, linearizable, snapshot, available
Tag support: Read Preference can use tag sets to target specific nodes (e.g., nodes in a specific data center) ; Read Concern does not support tagging
Performance impact: Read Preference affects latency by choosing closer nodes; Read Concern affects consistency guarantees and may wait for replication