如何在GridFS中执行更新操作(使用Java)?
我正在使用如何在GridFS中执行更新操作(使用Java)?,java,mongodb,gridfs,mongodb-java,Java,Mongodb,Gridfs,Mongodb Java,我正在使用mongojava驱动程序2.13我在GridFS中存储了一个PDF文件(大小为30mb)。我能够轻松执行插入、删除和查找操作 MongoClient mongo = new MongoClient("localhost", 27017); DB db = mongo.getDB("testDB"); File pdfFile = new File("/home/dev/abc.pdf"); GridFS gfs = new GridFS(db,"boo
mongojava驱动程序2.13
我在GridFS中存储了一个PDF文件(大小为30mb)。我能够轻松执行插入、删除和查找操作
MongoClient mongo = new MongoClient("localhost", 27017);
DB db = mongo.getDB("testDB");
File pdfFile = new File("/home/dev/abc.pdf");
GridFS gfs = new GridFS(db,"books");
GridFSInputFile inputFile = gfs.createFile(pdfFile);
inputFile.setId("101");
inputFile.put("title", "abc");
inputFile.put("author", "xyz");
inputFile.save();
数据保存在books.files
和books.chunks
集合中。现在我想更新:
- 案例1:pdf文件
- 案例2:标题或作者
在GridFS中,您不是删除单个文档,而是删除一组文档(文件被分割成块,每个块都是一个单独的文档)。这意味着以原子方式替换文件是不可能的 你可以做的是:
GridFSDBFile outputFile = gfs.findOne(new BasicDBObject("_id", 101));
BasicDBObject updatedMetadata = new BasicDBObject();
updatedMetadata.put("name", "PG");
updatedMetadata.put("age", 22);
outputFile.setMetaData(newMetadata);
outputFile.save();