如何从fs.chunks(GridFS)读取数据

时间:2019-06-12 06:43:01

标签: java mongodb gridfs

在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的方法更安全。

0 个答案:

没有答案