修改MongoDB GridFSBucket(Java)上的元数据

问题描述 投票:2回答:1

我正在使用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。

所以我的问题是:

  1. 我是否正确我应该使用GridFSBucket(而不是GridFS)
  2. 然后我如何访问和修改元数据而不诉诸于入侵fs.files集合(感觉就像作弊)。

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()
java mongodb gridfs
1个回答
0
投票

您可以通过编写新版本并修改新版本中的元数据来对其进行修改。这样做你需要的吗?

© www.soinside.com 2019 - 2024. All rights reserved.