私は gridFS を使用していますが、ファイルを書き込んだ後に表示されます。すぐに読み取りを行って見つけようとすると、mongoDB は実行時例外をスローしますが、断続的です。
それを引き起こすJavaコードは次のとおりです。
List<GridFSDBFile> files = PlayJongo.gridfs().find(filename);
GridFS クラスのドライバーの関連コードは次のとおりです。
/**
* finds a list of files matching the given query
* @param query
* @param sort
* @return
* @throws MongoException
*/
public List<GridFSDBFile> find( DBObject query , DBObject sort){
List<GridFSDBFile> files = new ArrayList<GridFSDBFile>();
DBCursor c = null;
try {
c = _filesCollection.find( query );
if (sort != null) {
c.sort(sort);
}
while ( c.hasNext() ){
files.add( _fix( c.next() ) );
}
} finally {
if (c != null){
c.close();
}
}
return files;
}
protected GridFSDBFile _fix( Object o ){
if ( o == null )
return null;
if ( ! ( o instanceof GridFSDBFile ) )
throw new RuntimeException( "somehow didn't get a GridFSDBFile" );
GridFSDBFile f = (GridFSDBFile)o;
f._fs = this;
return f;
}
私は遊びを使っています!2.1 は Jongo ラッパーを使用していますが、mongodb の Java ドライバーを使用して直接 gridFS にアクセスしているため、影響はありません。
奇妙なのは、実際に必要なデータがオブジェクトにあるよりもデバッグする場合ですが、ドライバーが期待しているオブジェクトではありません。
誰もこれに遭遇したことがありますか?