使用mongofiles操作GridFS
GridFS描述:
GridFS,看起来像一种文件系统,其实是一种数据库用法。主要用来在数据库中存储二进制大文件。可以统一用数据库处理数据,而无需借助外部的文件系统。另外,还可以利用MongoDB的复制或者是分片机制,其故障恢复和可扩展性较好。使用这种方式存储,可以避免使用文件系统的某些限制,例如平台的差异性导致存储需要做特殊处理(Linux在同一目录下的文件数限制),还可以避免文件碎片(MongoDB分配空间以2GB作为单位),这样数据存放相对较集中,即使有文件碎片,相对来说,其程度也要比操作系统的碎片程度低得多。
操作环境:Win8 64位操作系统,虚拟机 CentOS5.5.
操作步骤:
(1) 启动mongoDB服务器:
[root@h3 ~]# mongod -f /etc/mongod.conf Mon Aug 12 13:07:19.737 Mon Aug 12 13:07:19.739 warning: 32-bit servers don't have journaling enabled by default. Please use --journal if you want durability. Mon Aug 12 13:07:19.740 about to fork child process,waiting until server is ready for connections. forked process: 22881 all output going to: /var/log/mongo/mongod.log child process started successfully,parent exiting [root@h3 ~]#
(2)准备文件:
[root@h3 dbs]# echo 'hello mongoDB' >> test.txt [root@h3 dbs]# cat test.txt hello mongoDB
(3)将文件写入mongoDB:
[root@h3 dbs]# mongofiles put test.txt connected to: 127.0.0.1 added file: { _id: ObjectId('520871172918b24487573832'),filename: "test.txt",chunkSize: 262144,uploadDate: new Date(1376284952450),md5: "f595caa8025995fab85484de67dc8549",length: 14 } done!
(4) 查看文件:
[root@h3 dbs]# mongofiles list connected to: 127.0.0.1 test.txt 14
(5)删除建立的test.txt文件 :
[root@h3 dbs]# rm -rf test.txt
(6)查看数据:
[root@h3 dbs]# mongofiles get test.txt connected to: 127.0.0.1 done write to: test.txt [root@h3 dbs]# cat test.txt hello mongoDB操作完成!