Write stream into mongoDB in Java
You can use GridFS. Especially when you need to store larger files (>16MB) this is the recommended method:
File f = new File("sample.zip");GridFS gfs = new GridFS(db, "zips");GridFSInputFile gfsFile = gfs.createFile(f);gfsFile.setFilename(f.getName());gfsFile.setId(id);gfsFile.save();
Or in case you have an InputStream in
:
GridFS gfs = new GridFS(db, "zips");GridFSInputFile gfsFile = gfs.createFile(in);gfsFile.setFilename("sample.zip");gfsFile.setId(id);gfsFile.save();
You can load a file using one of the GridFS.find
methods:
GridFSDBFile gfsFile = gfs.findOne(id);InputStream in = gfsFile.getInputStream();