【发布时间】:2014-05-08 00:57:36
【问题描述】:
我正在使用 Gridfs 在 mongodb 中存储一个大文件。 这是我插入文件的代码:
GridFS bigFile = new GridFS(db, "35");
File f = new File(path+"/element.son");
GridFSInputFile gfsFile = bigFile.createFile(f);
gfsFile.setFilename("35");
gfsFile.save();
文件已成功插入,如果我尝试通过 restful 界面显示它,我会得到以下响应:
{
"offset" : 0,
"rows": [
{ "_id" : { "$oid" : "536ad33c300433edfe512724" }, "chunkSize" : 261120, "length" :
17647218, "md5" : "a86b60fb2d219d26b37256c89d1bb7f2", "filename" : "35", "contentType" :
null, "uploadDate" : { "$date" : 1399509820201 }, "aliases" : null }
],
"total_rows" : 1 ,
"query" : {} ,
"millis" : 0
}
现在,我想删除这个桶,这是我的代码:
GridFS gridFs = new GridFS(db, "35");
GridFSDBFile fi = gridFs.findOne("35");
GridFSDBFile file = gridFs.findOne(new ObjectId(fi.getId().toString()));
gridFs.remove(file);
显然文件已被删除,实际上响应是:
{
"offset" : 0,
"rows": [],
"total_rows" : 0 ,
"query" : {} ,
"millis" : 0
}
但是,如果我在控制台中显示集合,我的存储桶 (35.files,35.chunks) 仍然存在。
为什么在控制台中删除后我仍然有这个存储桶? 这是一个错误还是我没有理解一些东西?
【问题讨论】: