在Mongodb GridFS中,数据分为多个块并存储在fs.chunks集合中。
replset:PRIMARY> db.fs.files.findOne()
{
"_id" : ObjectId("5d009063e7923849879bcf74"),
"filename" : "OUT_XML",
"length" : NumberLong(30),
"chunkSize" : 358400,
"uploadDate" : ISODate("2019-06-12T05:40:51.647Z"),
"md5" : "d7705552425290e462a9c0e909acd4e0",
"metadata" : {
"START_TIME" : NumberLong("1546275661000"),
"END_TIME" : NumberLong("1546275661000"),
"ID" : 0,
"EXCEPTION_FLAG" : 1
}
}
replset:PRIMARY> db.fs.chunks.findOne()
{
"_id" : ObjectId("5d009063e7923849879bcf75"),
"files_id" : ObjectId("5d009063e7923849879bcf74"),
"n" : 0,
"data" : BinData(0,"Y29tLmlibS5kYjIuamNjLmFtLmMyQDdmZjk1NTYw")
}
但是当我尝试读取数据时,它仅在fs.files
中显示数据。我就是这样,这是offical demo
gridFSBucket.find(eq("_id", new ObjectId("5d009063e7923849879bcf74"))).forEach(
new Block<GridFSFile>() {
@Override
public void apply(final GridFSFile gridFSFile) {
System.out.println(gridFSFile);
}
我只是想知道如何获取fs.chunks
中的数据,
find()
的方法比download
的方法更安全。