我正在使用GridFS将文件添加到我的MongoDB数据库中。这些文件附有元数据。我现在想修改其中一个文件的元数据。我使用的是3.9版本的java驱动程序。
我正在使用GridFSBucket来访问GridFS集合。但是,GridFSBucket上的find()方法返回com.mongodb.client.gridfs.model.GridFSFile的实例 - 它们没有setter方法允许我更改元数据。
我看到com.mongodb.gridfs.GridFSFile确实有修改元数据的方法 - 但是为了获取这些对象的实例,我需要使用GridFS,这似乎不再被推荐了。当然,3.9版本的GridFS文档依赖于使用GridFSBucket。
所以我的问题是:
FWIW,这是我的代码:
String id = "5c05278530a59030cc89fc2f";) // hex id
com.mongodb.client.gridfs.model.GridFSFile file = gridFSBucket.find( eq( "_id", new ObjectId( id ) ) ).first();
Document d = file.getMetadata(); // No corresponding setMetadata()
您可以通过编写新版本并修改新版本中的元数据来对其进行修改。这样做你需要的吗?