2012-04-14 20 views
1

私の質問は以下のものと同じですが、私はこれを行うためにjavaドライバを使いたいとします。 Javaのドライバーのための上記の質問に与えられたJavaドライバを使用しているGridFSのカスタム_id

create own files_id in mongo GridFs using PHP

googlegroupリンクは、C#のドライバーのために実際にあります。 JavaドライバのGridFS APIをチェックすると、GridFSファイルコレクションの_idフィールドを設定する方法がないようです。

Javaドライバでこれを行う方法はありますか?私は他のドライバを使用するように切り替える必要があります。

+0

これは現時点では見えませんが、ここで改善のために作成されています:https://jira.mongodb.org/browse/JAVA-525 これが実装されるまでデザインを調整することは可能でしょうか?例えば – samlewis

+0

私がここで解決しようとしている基本的な問題は、files_idに完全に依存するGridFSの 'chunks'コレクションのシャーディングです。 'chunks'コレクションにフィールドを追加する方法があれば、私はそれをすべて公開しています。 –

+0

上記のjiraケースが修正されました。うまくいけば、次のリリースで利用可能になります。 Casbahがすぐに変更を統合できる場合にのみ! –

答えて

0

GridFSInputFileクラスのPutメソッドは、JSONオブジェクトにフィールドを追加するためのメソッドです。したがって、デフォルトでObjectIdである "_id"フィールドを追加すると、ObjectIdが上書きされます。

バージョン2.2.3で次のコードを試してみました。

GridFSInputFile gif = gridfs.createFile(new File("c:\\image.jpg")); 
gif.put("_id", 1234567); 
gif.save(); 

ファイルコレクションには期待どおりの1234567が含まれています。チャンクコレクションはfile_idと同じ値を持ちます。

関連する問題