MongoDB入门(8)- c#通过操作MongoDB GridFS实现文件的数据库存储
2016-08-23 14:44
781 查看
GridFS介绍
GridFS是MongoDB中的一个内置功能,可以用于存放大量小文件。GridFS
GridFS长啥样
/* 1 */ { "_id" : ObjectId("57302e18d9673e5bf4a4d3c6"), "filename" : "字段.txt", "aliases" : null, "chunkSize" : NumberLong(262144), "uploadDate" : ISODate("2016-05-09T06:28:40.672Z"), "length" : NumberLong(1672), "contentType" : null, "md5" : "2f85982b0fafcbfe6a3c9387ba49ea3b" } /* 2 */ { "_id" : ObjectId("57305107d96797bb9f96ed9f"), "filename" : "字段.txt", "aliases" : null, "chunkSize" : NumberLong(262144), "uploadDate" : ISODate("2016-05-09T08:57:43.277Z"), "length" : NumberLong(1672), "contentType" : null, "md5" : "2f85982b0fafcbfe6a3c9387ba49ea3b" } /* 3 */ { "_id" : ObjectId("573051d7d96700d357e6706f"), "filename" : "字段.txt", "aliases" : null, "chunkSize" : NumberLong(262144), "uploadDate" : ISODate("2016-05-09T09:01:11.060Z"), "length" : NumberLong(1672), "contentType" : null, "md5" : "2f85982b0fafcbfe6a3c9387ba49ea3b" }
源码
using MongoDB.Driver; using MongoDB.Driver.GridFS; using System.IO; namespace Wisdombud.Mongo { /// <summary> /// /// </summary> public class MongoFileBll { private MongoDatabase repository; /// <summary> /// /// </summary> /// <returns></returns> public MongoCursor<MongoGridFSFileInfo> FindAll() { return this.repository.GetGridFS(MongoGridFSSettings.Defaults).FindAll(); } /// <summary> /// /// </summary> /// <param name="pConnectionstring"></param> public MongoFileBll(string pConnectionstring) { MongoUrl mongourl = MongoUrl.Create(pConnectionstring); var client = new MongoClient(mongourl); MongoServer server = client.GetServer(); this.repository = server.GetDatabase(mongourl.DatabaseName); } /// <summary> /// /// </summary> /// <param name="filePath"></param> public void UploadFile(string filePath) { FileInfo fi = new FileInfo(filePath); this.repository.GetGridFS(MongoGridFSSettings.Defaults).Upload(filePath, fi.Name); } /// <summary> /// /// </summary> /// <param name="filePath"></param> /// <param name="fileName"></param> public void UploadFile(string filePath, string fileName) { this.repository.GetGridFS(MongoGridFSSettings.Defaults).Upload(filePath, fileName); } /// <summary> /// /// </summary> /// <param name="fileName"></param> /// <param name="filePath"></param> public void DownloadFile(string fileName) { this.repository.GetGridFS(MongoGridFSSettings.Defaults).Download(fileName); } /// <summary> /// /// </summary> /// <param name="fileName"></param> public void DeleteFile(string fileName) { this.repository.GetGridFS(MongoGridFSSettings.Defaults).Delete(fileName); } /// <summary> /// /// </summary> public void DeleteAll() { foreach (var inst in this.repository.GetGridFS(MongoGridFSSettings.Defaults).FindAll()) { inst.Delete(); } } } }
这个源码持续更新中
用法
MongoFileBll tl = new MongoFileBll("mongodb://127.0.0.1:27017/chzhaotest"); string folder = @"D:\Wisdombud\2016\20160324_Wisdombud.Mongo\SourceCode\Wisdombud.Mongo.Sample\bin\Debug"; DirectoryInfo di = new DirectoryInfo(folder); foreach (var file in di.GetFiles()) { tl.UploadFile(file.FullName, Guid.NewGuid().ToString()); } var aaa = tl.FindAll(); foreach (var inst in aaa) { Console.WriteLine(inst.Name); }
相关文章推荐
- c#通过操作mongodb gridfs实现文件的数据库存储
- PHP操作MongoDB GridFS 存储文件的详解
- C#连接Oracle数据库通过存储过程操作数据库
- 本文使用c#通过oledb可获取excel文件表的结构信息,同理也可以获得access等数据库的表结构信息,实现如下:
- C# 执行多条SQL语句,实现数据库事务(通过Hashtable存储数据) .
- 【荐】PHP操作MongoDB GridFS 存储文件,如图片文件
- C#实现XML文件数据库存储
- C# 执行多条SQL语句,实现数据库事务(通过Hashtable存储数据) .
- 通过Nginx+mongodb-gridfs+squid实现简单的图片存储及图片缓存示例
- PHP操作MongoDB GridFS 存储文件的详解
- C#连接Oracle数据库通过存储过程操作数据库
- 需求:实现数据库密码通过密文的方式存储在配置文件中
- PHP操作MongoDB GridFS 存储文件
- C#使用多线程实现网络爬虫,并且通过网络传输,传到另外的服务器数据库存储
- spring-通过JdbcTemplate进行数据库操作-代码实现,无配置文件
- BuguMongo通过BuguFS类来操作GridFS文件系统,能够实现对文件的保存、获取、删除、重命名、移动等操作,而且能够按文件夹组织文件。
- 【NOSQL】非关系型数据库MongoDB ( 通过samus驱动实现基本数据操作 )
- PHP操作MongoDB GridFS 存储文件
- C#与Flash ActionScript 2.0通过xml操作数据库(一)
- 数据库操作_连接SQL Server数据库示例;连接ACCESS数据库;连接到 Oracle 数据库示例;SqlCommand 执行SQL命令示例;SqlDataReader 读取数据示例;使用DataAdapter填充数据到DataSet;使用DataTable存储数据库表;将数据库数据填充到 XML 文件;10 使用带输入参数的存储过程;11 使用带输入、输出参数的存储过程示;12 获得数据库中表的数目和名称;13 保存图片到SQL Server数据库示例;14 获得插入记录标识号;Exce