MongoDB——上传,下载文件

目录


最近所在项目中用到了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打开桶中数据
在这里插入图片描述
结尾:在实际操作中遇到什么问题再去总结

发布了156 篇原创文章 · 获赞 49 · 访问量 5万+

猜你喜欢

转载自blog.csdn.net/shang_0122/article/details/103835362