目录
最近所在项目中用到了MongoDB数据库特此总结下,使用C#编写
一、下载程序包
MongoDB.Driver.dll及MongoDB.Bson.dll
可查看这位仁兄的博客
二、配置文件连接MongoDB数据库
1.打开App.config
2.在connectionStrings节点中写入下面代码
<add name="mongodb" connectionString="mongodb://localhost:27017/?safe=true"/>
此时连接的是本地,27017是MongoDB默认端口
三、写一个MongoDB助手类
1.在类中添加引用
using MongoDB.Driver;
using MongoDB.Driver.GridFS;
2…读取配置文件
private readonly string connectionString = ConfigurationManager.ConnectionStrings["mongodb"].ConnectionString.ToString();
3.助手类构造函数——连接数据库
//设置连接超时时间
private readonly int CONNECT_TIME_OUT = 1200;
readonly MongoServer server;
readonly MongoDatabase database;
public MongoHelper(string strDataBase)
{
//创建连接
server = MongoServer.Create(connectionString);
//连接数据库
database = server.GetDatabase(strDataBase);
MongoClientSettings mongoSetting = new MongoClientSettings();
//设置超时连接
mongoSetting.ConnectTimeout = new TimeSpan(CONNECT_TIME_OUT * TimeSpan.TicksPerSecond);
}
4.上传文件方法
public Boolean Upload(string strSourceFile, string strFileName, string strGridFS)
{
Boolean flag = false;
//定义一个本地文件的路径字符串
string localFileName = strSourceFile;
//定义mongoDB数据库中文件的名称
string mongoDBFileName = strFileName;
//设置GridFS文件中对应的集合前缀名
MongoGridFSSettings fsSetting = new MongoGridFSSettings() { Root = strGridFS };
//实例化一个GridFS
MongoGridFS gridfs = new MongoGridFS(database, fsSetting);
//将本地文件上传到mongoDB中去,以默认块的大小256KB对文件进行分块
gridfs.Upload(localFileName, mongoDBFileName);
flag = true;
return flag;
}
5.下载文件方法
public void DownLoad( string strFileName,string strGridFs)
{
//设置GridFS文件中对应的集合前缀名
MongoGridFSSettings fsSetting = new MongoGridFSSettings() { Root = strGridFs };
//实例化一个GridFS
MongoGridFS fs = new MongoGridFS(database, fsSetting);
//根据学好拼接出一个压缩包的名称
string fileName = strFileName;
fs.Download(fileName);
}
6.在外部调用
//声明一个实例 NCRE3数据库名字
MongoHelper mh = new MongoHelper("NCRE3");
//桶的名字
string tablename = MyInfo.MycollegeID();
if (mh.Upload(string.Format("D:\\" + MyInfo.MystudentID() + @".zip"), MyInfo.MystudentID() + "-" + s + ".zip", tablename))
{
File.Delete(string.Format("D:\\" + MyInfo.MystudentID() + @".zip"));
flag = true;
}
else
{
logInfo.uploadInfo += "上传文件失败";
}
7.在Navicat for MongoDB打开桶中数据
结尾:在实际操作中遇到什么问题再去总结