linux目录中grid,用MongoDB基于GridFS存储文件

在Mongodb中以GridFSB方式存放文件有两种方式:1、命令行方式mongofiles 2、客户端驱动编程(以Java为例)

相关阅读:

1、命令行方式mongofiles

在bin目录下有一个命令mongofiles.exe,即可完成命令行下向Mongodb数据库中插入文件数据。这里以前述所搭的4个分片,每分片3个复制集,3个ConfigSever ,1个路由节点的Windows的模拟集群为例。

D:/mongodb-win32-i386-1.8.0/bin>mongofiles.exe -host 127.0.0.1:50000 -d wlb put mongodump.exe

connected to: 127.0.0.1:50000

added file: { _id: ObjectId('4d91dbc1fb02c495a0a479d7'), filename: "mongodump.exe", chunkSize: 262144, uploadDate: new Date(1301404609850), md5: "647dcae88077e6

fa2bb3be6b0cdebb07", length: 3271680 }

done!

向数据库wlb中插入一个文件,即Mongodb/bin/mongodump.exe,所使用的Mongodb集群的路由节点为127.0.0.1,端口为50000,其中put为命令,表示向Mongodb中上传文件,也存在get、delete两个其它命令,分别表示取得文件和删除文件。

以如下命令启动mongo,进入wlb数据库,执行 db.fs.files.find()即可看到GridFS中的文件列表.

D:/mongodb-win32-i386-1.8.0/cmd>cd d:/mongodb-win32-i386-1.8.0/bin

D:/mongodb-win32-i386-1.8.0/bin>call mongo.exe 127.0.0.1:50000/admin

MongoDB shell version: 1.8.0

connecting to: 127.0.0.1:50000/admin

> use wlb

switched to db wlb

> db.fs.files.find()

{ "_id" : ObjectId("4d91dbc1fb02c495a0a479d7"), "filename" : "mongodump.exe", "chunkSize" : 262144, "uploadDate" : ISODate("2011-03-29T13:16:49.850Z"), "md5" :

"647dcae88077e6fa2bb3be6b0cdebb07", "length" : 3271680 }

2、以Java API来存取文件

这里以mongo-2.5.jar为例,代码如下:

packagecom.zhangzk.mongodb;

importjava.io.File;

importjava.net.UnknownHostException;

importjava.util.Date;

importjava.util.List;

importcom.mongodb.BasicDBObject;

importcom.mongodb.DB;

importcom.mongodb.DBCollection;

importcom.mongodb.DBCursor;

importcom.mongodb.DBObject;

importcom.mongodb.Mongo;

importcom.mongodb.MongoException;

importcom.mongodb.gridfs.GridFS;

importcom.mongodb.gridfs.GridFSInputFile;

publicclassMongoDBClientTest {

publicstaticvoidmain(String[] args) {

//      initData();

//      query();

initData4GridFS();

}

privatestaticvoidinitData4GridFS()   {

longstart =newDate().getTime();

try{

Mongo db =newMongo("127.0.0.1",50000);

DB mydb = db.getDB("wlb");

File f =newFile("D://study//document//MySQL5.1参考手册.chm");

GridFS myFS =newGridFS(mydb);

GridFSInputFile inputFile = myFS.createFile(f);

inputFile.save();

DBCursor cursor = myFS.getFileList();

while(cursor.hasNext()){

System.out.println(cursor.next());

}

db.close();

longendTime =newDate().getTime();

System.out.println(endTime - start);

System.out.println((endTime - start) /10000000);

}catch(Exception e) {

e.printStackTrace();

}

}

}0b1331709591d260c1c78e86d0c51c18.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值