mongodb - 确认对 MongoDB 公认的写关注的基本理解

标签 mongodb pymongo

在默认的“已确认”写入关注模式下使用 MongoDB(通过 PyMongo),如果我有一行写入数据库(例如,输出新集合的 mapReduce)后跟一行读取从数据库中,读取将始终看到写入的更改?

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

最佳答案

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

日志写入被写入磁盘上的日志文件,在电源/硬件故障等情况下保护您的数据。这不应该对一致性产生影响,一旦数据在内存中,一致性就会被覆盖。

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

关于mongodb - 确认对 MongoDB 公认的写关注的基本理解,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25368548/

相关文章:

python - 即使数据库显示数据,PyMongo 也不会返回 None

python - 如何使用 pymongo 编写连接到 mongodb 的函数

mongodb - 从嵌套在另一个数组中的数组中删除特定记录

node.js - 当我将数据从 index.js 传递到 index.ect 时,我无法在 Node.js 上显示模型值

python - Django 中 isinstance() arg 2 必须是类型或类型元组错误

c# - 将复杂对象序列化到 mongoDB

ruby connect.rb 连接到 Mongo 但 irb -r connect.rb 失败

mongodb - 在 Mongodb 的嵌套 map 对象模式中选择特定字段

python - 皮蒙戈。如何正确过滤以下数据?

python - 如何使用 MongoEngine 根据特定条件选择多个对象?