4

OutputStream私が見ることができるように、javamongoドライバーは既存のgridFSファイルから取得する機能を提供していませんcom.mongodb.gridfs.GridFSFile

GridFSInputFile直接作成するか、gridFs.createFile()メソッドを使用する必要があります。

それはJavaドライバーの欠如ですか、それともgridfsの制限ですか?

新しいファイルを作成する/古いファイルを削除する以外の回避策を提案できますか?

ありがとうございました

4

1 に答える 1

5

GridFSはMongoDBのコア機能ではありませんが、メタデータを伴うバイナリデータを格納する規則です。fs.chunks対応するドキュメントをそのままにして、コレクション内の任意のドキュメントを通常の方法で変更できる必要がありますfs.files。主な問題はMD5チェックサムの再計算ですが、AFAIKはどこにも使用されておらず、単なる「無料」のボーナスです。とにかく、追加のみの変更は可能です(再開されたダウンロードのMD5ダイジェストを参照)。

したがって、既存のGridFSファイルに追加するには、に対応するドキュメントを見つける必要がありますfs.fileslength次に、最後のチャンク充填率( %chunkSize== 0)に応じて、をfs.chunks尊重して最後のチャンクドキュメントを書き直すかchunkSize、または単に増分nフィールドを使用して新しいチャンクを追加します。次の更新lengthfs.files、場合によっては他のメタデータ。

于 2011-06-08T15:08:05.563 に答える