C# mongoDB GridFS 增删改查

链接数据库

public static MongoDatabase GetDatabase()
{
    string connectionString = "localhost:27017";
    string dbName = "fileTest";
    var server = MongoServer.Create(connectionString);
    return server.GetDatabase(dbName);
}

获取GridFS表

public static MongoGridFS GetMongoGridFS(string collection)
{
    MongoDatabase DB = GetDatabase();
    MongoGridFSSettings fsSetting = new MongoGridFSSettings() { Root = collection };
    MongoGridFS fs = new MongoGridFS(DB, fsSetting);
    return fs;
}

添加数据(上传文件)

public void upload()
{
    MongoGridFS fs = GetMongoGridFS("File"); // 传入表名字符串
    string fullpath = "C:/Users/Administrator/Desktop/image.png";
    string filename = "image.png";
    using (FileStream sr = new FileStream(fullpath, FileMode.Open))
    {
        MongoGridFSCreateOptions option = new MongoGridFSCreateOptions();

        BsonDocument doc = new BsonDocument();
        string[] pathArr = FullPath.Split('\\');
        doc.Add("operator", "Administrator");
        doc.Add("time", "20180504");
        option.Metadata = doc; // 添加metadata数据

        fs.Upload(sr, filename, option);
    }
}

删除数据

public void delete()
{
    MongoGridFS fs = GetMongoGridFS("File"); // 传入表名字符串
    string name = "Administrator";
    var query = new QueryDocument("metadata.operator", name);
    fs.Delete(query);
    //fs.DeleteById(BsonObjectId.Parse(id)); // id为string类型
}

查询数据

MongoGridFS fs = GetMongoGridFS("File"); // 传入表名字符串
List<MongoGridFSFileInfo> pList = fs.FindAll().SetSortOrder("filename").ToList();
List<MongoGridFSFileInfo> pList = fs.FindAll().OrderBy(x => x.metadata["time"]).ToList();

List<MongoGridFSFileInfo> pList = fs.FindAll().GroupBy(x => x.Metadata["Administrator"]).ToList(); // 分组查询

List<MongoGridFSFileInfo> pList = fs.FindAll().GroupBy(x => x.Metadata["Administrator"])
    .Select(x => new{
        Administrator = x.First().Metadata["Administrator"],
        count = x.Count()
    }).ToList(); // 分组查询返回部分结果

其他查询可查看https://blog.csdn.net/w174504744/article/details/45936109

下载文件

public void download()
{
    MongoGridFS fs = GetMongoGridFS("File"); // 传入表名字符串
    fs.Download(Response.OutputStream, "image.png");
    //fs.Download("D:/", "image.png"); // 下载到指定目录
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值