Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MongoDB中是否保留了更新顺序?_Mongodb - Fatal编程技术网

MongoDB中是否保留了更新顺序?

MongoDB中是否保留了更新顺序?,mongodb,Mongodb,如果我触发两个仅相隔1纳秒的更新。是否有可能更新操作会出现故障?说明第一次更新是否比第二次更新更复杂 我知道MongoDB最终是一致的,但我只是不清楚写入顺序是否被保留 注意:我使用的是旧版MongoDB的遗留系统,在MongoDB中没有更新的事务处理功能,写入操作在文档级别上是原子的,因为集合中的每个文档都是独立的。因此,当一个操作在文档上执行write时,第二个操作必须等待第一个操作完成对文档的写入 来自他们的文档: 写入操作在单个文档级别上是原子的,即使 该操作修改单个文档中的多个嵌入文档

如果我触发两个仅相隔1纳秒的更新。是否有可能更新操作会出现故障?说明第一次更新是否比第二次更新更复杂

我知道MongoDB最终是一致的,但我只是不清楚写入顺序是否被保留


注意:我使用的是旧版MongoDB的遗留系统,在MongoDB中没有更新的事务处理功能,写入操作在文档级别上是原子的,因为集合中的每个文档都是独立的。因此,当一个操作在文档上执行write时,第二个操作必须等待第一个操作完成对文档的写入

来自他们的文档:

写入操作在单个文档级别上是原子的,即使 该操作修改单个文档中的多个嵌入文档 文件

Ref:

那么这什么时候会成为一个问题呢在读取时,如果您的应用程序已准备就绪,则会出现这种情况。As读取可能发生在更新过程中-如果您的读取发生在更新完成之前,则您的应用程序将看到旧数据,或者在其他情况下,从二级读取也可能导致数据不一致

一般来说,MongoDB通常作为副本集托管(MongoDB通常是一组至少3台服务器/碎片/节点),其中写入必须明确针对主碎片&默认情况下,读取也针对主碎片,但如果您覆盖读取首选项以从次碎片读取以释放主碎片(可能是应用程序报告的一般情况),那么您可能会看到很少甚至零问题

但是为什么呢?一般来说,后台数据会从一级同步到二级,如果在任何情况下,在应用程序读取时延迟或没有同步,那么你会看到问题,但可能性很低。无论如何,所有这些都是在MongoDB版本
4.0
-从
4.0
二级读取首选项启用的应用程序将从数据的WiredTiger快照

Ref: