我不能再使用java驱动程序写入GridFS mongo集合,mongodb版本是2.6.8(但我也可以在2.4.6上重现相同的问题),驱动程序是mongo-java-driver-2.12 0.1。我有一个文件存储库实现,它使用下面的网格fs,因为今天它无法写入这些集合,但有以下错误:
com.mongodb.MongoException: no md5 returned from server: { "serverUsed" : "127.0.0.1:27017" , "errmsg" : "exception: Can't get runner for query { files_id: ObjectId('55c2196fd4c6e731be2ba1e9'), n: { $gte: 0 } }" , "code" : 17241 , "ok" : 0.0}
这是我的应用程序的输出,在驱动程序中启用了跟踪和调试标志。有人知道这个问题吗?提前谢谢。
答案 0 :(得分:0)
对我来说这个错误发生了,因为gridfs集合丢失了一个索引。在mongo shell中运行它来修复它:
使用 db.fs.files.ensureIndex({filename:1,uploadDate:1}) db.fs.chunks.ensureIndex({files_id:1,n:1})