默认的MongoDB读/写关注
在本页面
阅读关注
默认读取问题
默认的
read concern
如下:
| 操作 | 默认读取问题 |
|---|---|
| 针对主要的读取 |
"local"
注意,这个读取的关注点可以返回可能被回滚的数据。此读取关注点 不 保证 因果一致性 。 |
| 如果读操作与 因果一致的会话 相关联,则读取二级会话。 |
"local"
注意 这个读关注可以返回可能回滚的数据。 此读取关注点 不 保证 因果一致性 。 |
| 如果读操作与 因果一致的会话 没有关联,则对辅助会话进行读取。 |
"available"
注意 这个读关注可以返回可能回滚的数据 这种已读关注点 不能 保证 因果关系的一致性 。 对于分片集合,这个读关注也可以返回 孤立的文档 。 |
指定读取关注:MongoDB驱动程序
- 外部事务操作
注意
以下内容适用于在事务外部发出的操作。
要阅读与事务内部发出的操作相关的关注信息,请单击事务中的操作选项卡。
使用 MongoDB 驱动 ,您可以覆盖默认的 read concern ,并设置以下级别的操作的read concern:
| 水平 | 描述 |
|---|---|
| 客户级别 | 应用于操作,除非在数据库/集合/操作级别设置了更细致的读取关注。否则将应用于操作。 |
| 数据库级别 |
应用于数据库集合上的操作(即覆盖客户端读关注),除非已在集合级别或操作级别设置了读关注。
注意: 不适用于事务内部的操作。 |
| 集合级别 |
应用对集合的读操作(即覆盖数据库/客户端读关注),除非已在操作级别设置了读关注。
注意: 不适用于事务内部的操作。 |
| 操作级别 |
应用特定的读操作(例如,覆盖数据库/客户端/集合读关注)。在操作中设置read
concern的能力取决于驱动程序。请参考您的
驱动程序文档
。
注意: 不适用于事务内部的操作。 |
- 事务中的操作
注意
以下内容适用于在事务内部发出的操作。
要阅读与发出外部事务的操作相关的关注信息,请单击“外部事务的操作”选项卡。
使用 MongoDB 驱动 ,您可以覆盖默认的 read concern ,并设置以下级别的操作的read concern:
| 水平 | 描述 |
|---|---|
| 客户级别 |
应用于事务,除非在会话/事务级别设置了更细致的读取关注。
注意 事务中的所有操作都使用事务读关注;即,在事务内部忽略在操作/集合/数据库级别设置的任何读关注。 |
| 会话级别 |
应用于在会话中启动的事务(即覆盖客户端读取关注),除非在特定事务级别上设置了更细致的读取关注级别。
注意 事务中的所有操作都使用事务读关注;即,在事务内部忽略在操作/集合/数据库级别设置的任何读关注。 有关更多信息,请参阅 事务的阅和读关注 。 |
| 事务级别 |
应用于特定的事务。
事务写关注应用于提交操作和事务内部的操作。 注意 事务中的所有操作都使用事务读关注;即,在事务内部忽略在操作/集合/数据库级别设置的任何读关注。 |
额外的信息
有关可用的读取关注点的更多信息,请参见 read Concern 。
写关注
默认写问题
默认的 write concern 是 w: 1 。
请注意
- 使用默认的写关注,数据可以回滚。
- 此写关注点 不 保证 因果一致性 。
指定写关注:MongoDB驱动程序
- 外部事务操作
注意
以下内容适用于在 transactions 外部发出的操作。
要阅读与事务内部发布的操作相关的关注信息,请单击“事务中的操作”选项卡。
使用 MongoDB drivers ,您可以覆盖默认的 write concern ,并在以下级别设置操作的write concern:
| Level | Description |
|---|---|
| 客户级别 | 除非在操作/数据库/集合中为操作设置了更细的写关注点,否则将应用于操作。 |
| 数据库级别 |
应用于数据库集合上的写操作(即覆盖客户端写关注点),除非在集合级别或操作级别上设置了写关注点
注意 不适用于事务内部的操作。 |
| 集合级别 |
应用于集合上的写操作(即覆盖数据库和客户端写关注点),除非在操作级别上设置了写关注点。
注意 不适用于事务内部的操作。 |
| 操作级别 |
应用于特定的写操作。在操作中设置写关注点的能力取决于驱动程序。请参考您的
驱动程序文档
。
注意 不适用于事务内部的操作。 |
- 事务中的操作
注意
以下内容适用于在事务内部发出的操作。
要阅读与发出外部事务的操作相关的关注信息,请单击“外部事务的操作”选项卡。
| 水平 | 描述 |
|---|---|
| 客户级别 |
应用于事务,除非在会话/事务级别设置了更细致的读取关注。
事务写关注点适用于提交操作和事务内部的操作。 注意 事务中的所有操作都使用事务读关注;即,在事务内部忽略在操作/集合/数据库级别设置的任何读关注。 |
| 会话级别 |
应用于在会话中启动的事务(即覆盖客户端读取关注),除非在特定事务级别上设置了更细致的读取关注级别。
事务写关注点适用于提交操作和事务内部的操作。 注意 事务中的所有操作都使用事务读关注;即,在事务内部忽略在操作/集合/数据库级别设置的任何读关注。 有关更多信息,请参阅 事务的阅和读关注 。 |
| 事务级别 |
应用于特定的事务。
事务写关注应用于提交操作和事务内部的操作。 注意 事务中的所有操作都使用事务读关注;即,在事务内部忽略在操作/集合/数据库级别设置的任何读关注。 |
使用MongoDB驱动程序,你可以覆盖默认的写关注和设置写关注为以下级别的事务:
额外的信息
有关可用的写关注点的更多信息,请参见 写关注点 。
因果一致性的保证
使用 因果一致的客户端会话 ,客户端会话仅在以下情况下保证因果一致:
- 相关的读取操作使用 "majority" 读取concern,
- 相关的写操作使用 "majority" 写关注。