Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.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 GridFS中是否为CRUD操作维护了原子性?_Mongodb_Crud_Gridfs_Atomicity - Fatal编程技术网

MongoDB GridFS中是否为CRUD操作维护了原子性?

MongoDB GridFS中是否为CRUD操作维护了原子性?,mongodb,crud,gridfs,atomicity,Mongodb,Crud,Gridfs,Atomicity,因为GridFS在fs.chunks中存储数据块,在fs.files中存储元数据。因此,在一个事务中,它管理两个集合。是否保证所有CRUD操作的原子性?这是说明: 如果需要以原子方式更新整个文件的内容,请不要使用GridFS。或者,您可以存储每个文件的多个版本,并在元数据中指定文件的当前版本。您可以在上载文件的新版本后更新元数据字段,该字段指示原子更新中的“最新”状态,然后根据需要删除以前的版本 我是MongoDB认证DBA,老实说,我不确定。我对C、R和D很有信心。关于U,我必须进行研究,因为

因为GridFS在
fs.chunks
中存储数据块,在
fs.files
中存储元数据。因此,在一个事务中,它管理两个集合。是否保证所有CRUD操作的原子性?

这是说明:

如果需要以原子方式更新整个文件的内容,请不要使用GridFS。或者,您可以存储每个文件的多个版本,并在元数据中指定文件的当前版本。您可以在上载文件的新版本后更新元数据字段,该字段指示原子更新中的“最新”状态,然后根据需要删除以前的版本


我是MongoDB认证DBA,老实说,我不确定。我对C、R和D很有信心。关于U,我必须进行研究,因为原子性只能在文档级别上得到保证。请有一点耐心。可能值得指出的是,这意味着MongoDB不仅不能保证
fs.chunks
fs.files
的一致性,而且不能保证
fs.chunks
中一个文件的块的一致性。@Philipp:假设我将名称保存为元数据。现在我想更新这个名字。我需要重新更新整个文件吗?只是为了名称?@dev当你刚刚更新元数据时,为什么还要更新其他内容?@Philipp my bad…我很困惑。我再次检查了java驱动程序。我可以轻松地更新元数据。谢谢你的帮助……)