sql - MongoDB : few questions

标签 sql ruby-on-rails mongodb rdbms nosql

  1. 我经常听说 mongodb 可以在一个集合级别执行原子性。 您知道为什么以及如何将其与分片联系起来吗?
  2. replication 和 replicasets 之间的唯一区别是两者都是主/从(主要/次要),但 replicasets 具有 如果 master 挂了就选举,对吗?
  3. 在 ACID 中,mongodb2 支持/不支持哪些?
  4. 能否通过 safe=true 保证 mongodb 的持久性?

谢谢!

最佳答案

  1. MongoDB 目前可以在“更新单个文档”级别提供原子性,仅此而已。这与分片完全无关。

  2. 或多或少。副本集较新,您现在基本上应该一直使用它们。如今,主/从复制只是为了向后兼容。 future 很可能只有副本集会获得新功能。

  3. 为单个文档的更新提供了原子性(参见 #1)。根本没有真正提供一致性和隔离性——您的应用程序必须这样做。可以通过要求在驱动程序报告成功之前将写入操作持久保存到多个节点来提供持久性(以某种方式)(参见 #4)。

  4. 可以通过调整 Write Concern 来提供持久性,方法是使用 W > 1 的值,和/或(尽管这很慢)使用 fsync。查看WriteConcern documentationconnection string文档。

关于sql - MongoDB : few questions,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9159356/

相关文章:

sql - Postgresql查询获取创建账号24小时内拥有少数属性的用户

ruby-on-rails - sidekiq队列的优先级

node.js - Mongoose findByIdAndUpdate 没有返回正确的模型

php - 如何在laravel 5.8中合并两个sql表

mysql - 当表具有 BIGINT 且唯一的列时,mysql LOAD DATA 出现问题

php - 奇怪的 MySQL CREATE TABLE 行为

sql - 如何选择列组合与值列表匹配的行?

ruby-on-rails - Paypal:如何在付款后更新运费,如 Etsy 所做的那样?

node.js - Node js 上的 MongoDB 过期事件

java - MongoDB 最佳实践——获取集合