我正在研究一个非常基本问题的可能解决方案:是否有建议的做法确保存储在GridFS中的文件实际上不会创建重复? 我们注意到,在非常罕见的情况下,我们的商店调用可能会发生,就像它可以获得的那样简单(使用Java驱动程序)实际上可以在并行执行的情况下创建新文件的副本。
GridFS gridfs = new GridFS(db);
GridFSInputFile file = new GridFSInputFile(gridfs, fileContent, fileName, true);
file.put("type", "email");
file.setContentType(contentType);
file.save();
在这种情况下,我们使用 FSYNC_SAFE 作为写入关注点,集合是分片的。 我们是否应该完全避免使用mongo驱动程序并直接写入gridfs文件集合,添加额外的逻辑,或者在保存完成后更容易检查和删除重复(当然是) 不是最佳的。)