默认的MongoDB读/写关注

在本页面

阅读关注

Read/Write Concern Inheritance

默认读取问题

默认的 read concern如下:

操作
默认读取问题

针对主要的读取

["local"](https://docs.mongodb.com/master/reference/read-concern-local/#readconcern."local") 注意,这个读取的关注点可以返回可能被回滚的数据。此读取关注点保证因果一致性

如果读操作与因果一致的会话相关联,则读取二级会话。

["local"](https://docs.mongodb.com/master/reference/read-concern-local/#readconcern."local") 注意 这个读关注可以返回可能回滚的数据。 此读取关注点保证因果一致性

如果读操作与因果一致的会话没有关联,则对辅助会话进行读取。

["available"](https://docs.mongodb.com/master/reference/read-concern-available/#readconcern."available") 注意 这个读关注可以返回可能回滚的数据 这种已读关注点不能保证因果关系的一致性。 对于分片集合,这个读关注也可以返回孤立的文档

指定读取关注:MongoDB驱动程序

  • 外部事务操作

注意

以下内容适用于在事务外部发出的操作。

要阅读与事务内部发出的操作相关的关注信息,请单击事务中的操作选项卡。

使用MongoDB 驱动,您可以覆盖默认的read concern,并设置以下级别的操作的read concern:

水平
描述

客户级别

应用于操作,除非在数据库/集合/操作级别设置了更细致的读取关注。否则将应用于操作。

数据库级别

应用于数据库集合上的操作(即覆盖客户端读关注),除非已在集合级别或操作级别设置了读关注。 注意: 不适用于事务内部的操作。

集合级别

应用对集合的读操作(即覆盖数据库/客户端读关注),除非已在操作级别设置了读关注。 注意: 不适用于事务内部的操作。

操作级别

应用特定的读操作(例如,覆盖数据库/客户端/集合读关注)。在操作中设置read concern的能力取决于驱动程序。请参考您的驱动程序文档。 注意: 不适用于事务内部的操作。

  • 事务中的操作

注意

以下内容适用于在事务内部发出的操作。

要阅读与发出外部事务的操作相关的关注信息,请单击“外部事务的操作”选项卡。

使用MongoDB 驱动,您可以覆盖默认的read concern,并设置以下级别的操作的read concern:

水平
描述

客户级别

应用于事务,除非在会话/事务级别设置了更细致的读取关注。 注意 事务中的所有操作都使用事务读关注;即,在事务内部忽略在操作/集合/数据库级别设置的任何读关注。

会话级别

应用于在会话中启动的事务(即覆盖客户端读取关注),除非在特定事务级别上设置了更细致的读取关注级别。 注意 事务中的所有操作都使用事务读关注;即,在事务内部忽略在操作/集合/数据库级别设置的任何读关注。 有关更多信息,请参阅事务的阅和读关注

事务级别

应用于特定的事务。 事务写关注应用于提交操作和事务内部的操作。 注意 事务中的所有操作都使用事务读关注;即,在事务内部忽略在操作/集合/数据库级别设置的任何读关注。

额外的信息

有关可用的读取关注点的更多信息,请参见read Concern

写关注

Read/Write Concern Inheritance

默认写问题

默认的 write concernw: 1

请注意

  • 使用默认的写关注,数据可以回滚。

  • 此写关注点保证因果一致性

指定写关注:MongoDB驱动程序

  • 外部事务操作

注意

以下内容适用于在transactions外部发出的操作。

要阅读与事务内部发布的操作相关的关注信息,请单击“事务中的操作”选项卡。

使用MongoDB drivers,您可以覆盖默认的write concern,并在以下级别设置操作的write concern:

Level
Description

客户级别

除非在操作/数据库/集合中为操作设置了更细的写关注点,否则将应用于操作。

数据库级别

应用于数据库集合上的写操作(即覆盖客户端写关注点),除非在集合级别或操作级别上设置了写关注点 注意 不适用于事务内部的操作。

集合级别

应用于集合上的写操作(即覆盖数据库和客户端写关注点),除非在操作级别上设置了写关注点。 注意 不适用于事务内部的操作。

操作级别

应用于特定的写操作。在操作中设置写关注点的能力取决于驱动程序。请参考您的驱动程序文档。 注意 不适用于事务内部的操作。

  • 事务中的操作

注意

以下内容适用于在事务内部发出的操作。

要阅读与发出外部事务的操作相关的关注信息,请单击“外部事务的操作”选项卡。

水平
描述

客户级别

应用于事务,除非在会话/事务级别设置了更细致的读取关注。 事务写关注点适用于提交操作和事务内部的操作。 注意 事务中的所有操作都使用事务读关注;即,在事务内部忽略在操作/集合/数据库级别设置的任何读关注。

会话级别

应用于在会话中启动的事务(即覆盖客户端读取关注),除非在特定事务级别上设置了更细致的读取关注级别。 事务写关注点适用于提交操作和事务内部的操作。 注意 事务中的所有操作都使用事务读关注;即,在事务内部忽略在操作/集合/数据库级别设置的任何读关注。 有关更多信息,请参阅事务的阅和读关注

事务级别

应用于特定的事务。 事务写关注应用于提交操作和事务内部的操作。 注意 事务中的所有操作都使用事务读关注;即,在事务内部忽略在操作/集合/数据库级别设置的任何读关注。

使用MongoDB驱动程序,你可以覆盖默认的写关注和设置写关注为以下级别的事务:

额外的信息

有关可用的写关注点的更多信息,请参见写关注点

因果一致性的保证

使用因果一致的客户端会话,客户端会话仅在以下情况下保证因果一致:

最后更新于