确认对 MongoDB 公认的写入问题的基本了解

Gho*_*r21 5 mongodb pymongo

在默认的“确认”写入关注模式下使用 MongoDB(通过 PyMongo),是否有这样的情况:如果我有一行写入数据库(例如输出新集合的 mapReduce),后面跟着一行从数据库读取,读取总是会看到写入的变化?

此外,对于所有比“已确认”(即“日记式”和“副本已确认”)更严格的写入问题,上述情况是否正确,但在“未确认”的情况下则不然?

xer*_*raa 5

如果写入已被确认,则应已将其写入内存,因此任何后续查询都应​​获取当前数据。如果您有副本集并允许从辅助节点读取,则这将不起作用。

日志写入被写入磁盘上的日志文件,这可以在出现电源/硬件故障等情况下保护您的数据。这不会对一致性产生影响,一旦数据进入内存,一致性就会受到影响。

写关注中的任何副本配置都将确保写入需要被副本集中的大多数/所有节点确认。仅当您从副本读取或保护数据免受无法访问/失效服务器的影响时,这才会产生影响。