A quick mongofile demo

Here’s a few simple examples of using the mongofiles utility to use MongoDB GridFS to store, search and retrieve files.

Upload a file into MongoDB into a database called gridfs

mongofiles -u admin -padmin --authenticationDatabase admin --db gridfs put xfiles.504-amc.avi
2016-11-15T21:44:30.728+0100	connected to: localhost
added file: xfiles.504-amc.avi

Two collections will be created in the gridfs database; fs.files and fs.chunks…

mongos> show dbs
admin   0.000GB
config  0.001GB
gridfs  0.343GB
test    0.003GB
mongos> use gridfs
switched to db gridfs
mongos> show collections
fs.chunks
fs.files
mongos> db.fs.files.findOne();
{
	"_id" : ObjectId("582b74e4d60dc3078824242c"),
	"chunkSize" : 261120,
	"uploadDate" : ISODate("2016-11-15T20:51:17.412Z"),
	"length" : 133881469,
	"md5" : "dfdc2e394e63f4b63591e0fc6823f3f9",
	"filename" : "xfiles.504-amc.avi"
}

Upload a few more files…

mongofiles -u admin -padmin --authenticationDatabase admin --db gridfs put the.venture.bros.s06e02.hdtv.x264-2hd.mp4 
mongofiles -u admin -padmin --authenticationDatabase admin --db gridfs put the.venture.bros.s06e03.hdtv.x264-w4f.mp4

List files available in the gridfs database

mongofiles -u admin -padmin --authenticationDatabase admin --db gridfs list
2016-11-15T22:08:06.305+0100	connected to: localhost
xfiles.504-amc.avi	367001600
the.venture.bros.s06e02.hdtv.x264-2hd.mp4	133881469
the.venture.bros.s06e03.hdtv.x264-w4f.mp4	144681933
the.venture.bros.s06e07.hdtv.x264-mtg.mp4	128260039

Search for files with a .avi extension

mongofiles -u admin -padmin --authenticationDatabase admin --db gridfs search .avi
2016-11-15T22:09:22.398+0100	connected to: localhost
xfiles.504-amc.avi	367001600

Download a file

Download the xfiles.504-amc.avi file to /tmp/downloaded_file.avi

mongofiles -u admin -padmin --authenticationDatabase admin --db gridfs get xfiles.504-amc.avi --local /tmp/downloaded_file.avi

Verify the file;

file /tmp/downloaded_file.avi 
/tmp/downloaded_file.avi: RIFF (little-endian) data, AVI, 640 x 368, 23.98 fps, video: DivX 3 Low-Motion, audio: Dolby AC3 (stereo, 48000 Hz)

Delete a file

Delete the xfiles.504-amc.avi file;

mongofiles -u admin -padmin --authenticationDatabase admin --db gridfs delete xfiles.504-amc.avi
2016-11-15T22:14:16.192+0100	connected to: localhost
successfully deleted all instances of 'xfiles.504-amc.avi' from GridFS

Leave a Reply