MongoDB入门(8)- c#通过操作MongoDB GridFS实现文件的数据库存储
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);
}
MongoDB入门(8)- c#通过操作MongoDB GridFS实现文件的数据库存储的更多相关文章
- Mongodb入门并使用java操作Mongodb
转载请注意出处:http://blog.csdn.net/zcm101 最近在学习NoSql,先从Mongodb入手,把最近学习的总结下. Mongodb下载安装 Mongodb的下载安装就不详细说了 ...
- c#通过操作mongodb gridfs实现文件的数据库存储
@(编程) 源码 using MongoDB.Driver; using MongoDB.Driver.GridFS; using System.IO; namespace Wisdombud.Mon ...
- [转]MongoDB for Java】Java操作MongoDB
原文地址: MongoDB for Java]Java操作MongoDB 开发环境: System:Windows IDE:eclipse.MyEclipse 8 Database:mongoDB 开 ...
- MongoDB(索引及C#如何操作MongoDB)(转载)
MongoDB(索引及C如何操作MongoDB) 索引总概况 db.test.ensureIndex({"username":1})//创建索引 db.test.ensureInd ...
- Mongodb快速入门之使用Java操作Mongodb
[IT168 专稿]在上一篇文章中,我们学习了Mongodb的安装和初步使用,在本文中,将学习如何使用Java去编程实现对Mongodb的操作. HelloWorld程序 学习任何程序的第一步,都是编 ...
- MongoDB(3)--Java 操作 MongoDB 的 API
引入mongoDb 依赖 <dependency> <groupId>org.mongodb</groupId> <artifactId>mongo-j ...
- 【MongoDB for Java】Java操作MongoDB
上一篇文章: http://www.cnblogs.com/hoojo/archive/2011/06/01/2066426.html介绍到了在MongoDB的控制台完成MongoDB的数据操作,通过 ...
- MongoDB的安装与python操作MongoDB
一.安装MongoDB 因为我个人使用的是windows,就只记录下windows下的安装 1.下载安装 就是官网,下载msi,选个路径安装 2.配置 看见别的地方说需要手动在bin同级目录创建dat ...
- MongoDB入门及 c# .netcore客户端MongoDB.Driver使用
MongoDB 是一个基于分布式文件存储的数据库.由 C++ 语言编写.旨在为 WEB 应用提供可扩展的高性能数据存储解决方案. MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系 ...
随机推荐
- Entity Framework 基本概念
概念 LINQ to Entities 一种 LINQ 技术,使开发人员可以使用 LINQ 表达式和 LINQ 标准查询运算符,针对实体数据模型 (EDM) 对象上下文创建灵活的强类型化查询. ESQ ...
- 家用甲醛pm2.5温湿度传感器实验
最近在装修房子,刷完墙漆铺完了木地板以后,屋里边有很大的味,所以就买了 攀藤科技的PMS5003ST G5ST PM2.5激光粉尘甲醛温湿度三合一传感器,打算自己测一下甲醛浓度,看看什么时候能够入住. ...
- Fluent Python: Classmethod vs Staticmethod
Fluent Python一书9.4节比较了 Classmethod 和 Staticmethod 两个装饰器的区别: 给出的结论是一个非常有用(Classmethod), 一个不太有用(Static ...
- Python面向对象-访问限制
在Class内部,可以有字段,方法和属性,而外部代码可以通过直接调用实例变量的方法来操作数据, (1)私有普通字段 比如对于下面的Student类,name字段可以在外面通过对象进行直接访问: cla ...
- 【转载】java byte转十六进制
public static String bytes2HexString(byte[] b) { String ret = ""; for (int i = 0; i < b ...
- win10 死机
其实Win10系统还是不错的,如果你的电脑升级Win10后中招经常死机,可以用下面的方案来应对. 1.下载安装支持兼容Win10的软件版本,下载软件之前看一下兼容列表里是否有Win10系统.虽然Win ...
- CodeForces - 792C Divide by Three (DP做法)
C. Divide by Three time limit per test: 1 second memory limit per test: 256 megabytes input: standar ...
- 福大软工1816:Alpha(8/10)
Alpha 冲刺 (8/10) 队名:第三视角 组长博客链接 本次作业链接 团队部分 团队燃尽图 工作情况汇报 张扬(组长) 过去两天完成了哪些任务: 文字/口头描述: 1. 2. 展示GitHub当 ...
- 开启假期JAVA之路
. 从最基础的JAVA开始学起,已经上了三节课啦!希望在课程结束后能完成一个令自己满意的连连看项目,期待ing~ 慢慢的从简单的代码上手了~ . 用循环输出等腰三角形的效果 import java.u ...
- Swift-可选值(Optional)讲解
前提:Swift中有规定:对象中的任何属性在创建时,都必须要有明确的初始化值 1.定义可选类型 方式一:常规方式(不常用) var name : Optional<String> = ni ...