Изменить метаданные в MongoDB GridFSBucket (Java) - PullRequest
0 голосов
/ 03 декабря 2018

Я использую GridFS для добавления файлов в базу данных MongoDB.К этим файлам прикреплены метаданные.Теперь я хочу изменить метаданные одного из этих файлов.Я использую версию 3.9 Java-драйвер.

Я использую GridFSBucket для доступа к коллекции GridFS.Однако методы find () в GridFSBucket возвращают экземпляры com.mongodb.client.gridfs.model.GridFSFile, у которых нет методов установки, позволяющих мне изменять метаданные.

Я вижу этот 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()

1 Ответ

0 голосов
/ 24 февраля 2019

Вы можете изменить его, написав новую версию и изменив метаданные в новой версии.Делает ли это то, что вам нужно?

...