Mongodb 和持久化数据

阿诺德·扎内德

关于 Mongo 是 NoSql 数据库的事实,并考虑到 NoSql Dbs 对 RAM 的严重依赖,我一直想知道在以下情况下会发生什么?

假设我在服务器中安装了 MongoDb,并且我正在文档中记录付款。例如:

 {
     UserId: "X-123456",
     //Rest of user data,
     Payments: [
        {
            TransactionId: "X-123456"
            //Rest of payment data
        }
     ]
 }

当用户付款时,服务器收到付款成功响应,在响应添加到文档后大约几秒钟内,电源熄灭,服务器关闭。例如:

 1- Response received at 04.01.01.100
 2- Response added to Mongo Document at 04.01.01.300
 3- Power goes out at 04.01.05.00

在这种情况下,数据会发生什么变化?它还会出现在User文档中吗?

克莱门特·阿玛纳特

1- 在 04.01.01.100 收到响应
2-在 04.01.01.300添加到 Mongo 文档的响应
3- 在 04.01.05.00 断电
在这种情况下,数据会发生什么变化?它在用户文档中仍然可用吗?

当您使用适当的WriteConcern 时, mongodb 会确认数据已存储在文档中。在您的情况下,数据仍将在用户文档中可用。

w: 1WriteConcern使用此选项请求确认写入操作已传播到独立的 mongodb 或副本集中的主数据库。w: 1是 MongoDB 的默认写关注。

MongoDB 站在CAP(一致性可用性分区)定理上的CP,通过一致性 MongoDB 确保我们保存的数据在我们请求/查询时返回给我们。更多信息 - Mongodb ACID 和 CAP 定理

MongoDB 是一个 NoSQL 数据库,并且具有在给定秒内写入更多文档的良好能力 -插入统计示例

请注意,MongoDB 中文档的写入时间取决于

  1. 文件大小每个文件最大 16MB),

  2. 我们已经指定了WriteConcern

  3. 集合上需要在插入文档时更新的索引数和

  4. 副本集的数量(MongoDB中的副本集是一组维护相同数据集的mongod进程。副本集提供冗余和高可用性)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章