C# MongoDB操作类
发布日期:2021-11-12 00:26:26 浏览次数:4 分类:技术文章

本文共 3996 字,大约阅读时间需要 13 分钟。

之前使用C#对MongoDB进行操作,查找了一些资料,最后总结了这个类,记录一下以备以后使用。

需要引用MongoDB.Driver.dll、MongoDB.Bson.dll、MongoDB.dll三个文件。如果没有的话,可以在https://pan.baidu.com/s/1qXQz7JI 下载。

以下为类的代码:

using MongoDB.Driver;using MongoDB.Bson;using MongoDB.Driver.Builders;  public static class MongoHelperNew{	//服务器地址	public static readonly string connectionString = "mongodb://用户名:密码@数据库IP:27017";	//数据库名称 	public static readonly string databaseName = "数据库名称";	public static MongoCursor
Search(String collectionName, IMongoQuery query) { //定义Mongo服务 MongoServer server = MongoServer.Create(connectionString); //获取databaseName对应的数据库,不存在则自动创建 MongoDatabase mongoDatabase = server.GetDatabase(databaseName); MongoCollection
collection = mongoDatabase.GetCollection
(collectionName); try { if (query == null) return collection.FindAll(); else return collection.Find(query); } finally { server.Disconnect(); } } ///
/// 新增 /// public static Boolean Insert(String collectionName, BsonDocument document) { MongoServer server = MongoServer.Create(connectionString); MongoDatabase mongoDatabase = server.GetDatabase(databaseName); MongoCollection
collection = mongoDatabase.GetCollection
(collectionName); try { collection.Insert(document); server.Disconnect(); return true; } catch { server.Disconnect(); return false; } } ///
/// 修改 /// public static Boolean Update(String collectionName, IMongoQuery query, IMongoUpdate new_doc) { MongoServer server = MongoServer.Create(connectionString); MongoDatabase mongoDatabase = server.GetDatabase(databaseName); MongoCollection
collection = mongoDatabase.GetCollection
(collectionName); try { collection.Update(query, new_doc); server.Disconnect(); return true; } catch { server.Disconnect(); return false; } } ///
/// 移除 /// public static Boolean Remove(String collectionName, IMongoQuery query) { MongoServer server = MongoServer.Create(connectionString); MongoDatabase mongoDatabase = server.GetDatabase(databaseName); MongoCollection
collection = mongoDatabase.GetCollection
(collectionName); try { collection.Remove(query); server.Disconnect(); return true; } catch { server.Disconnect(); return false; } }}
调用的方法如下:

// 查询操作List
<表model类>
lst = new List
<表model类>
();foreach (BsonDocument tmp in MongoHelperNew.Search("表名称", MongoDB.Driver.Builders.Query.EQ("字段名", 值))){ 表model类 表对象 = new 表model类(); 表对象.属性1 = tmp.Contains("字段1") && tmp["字段1"] != null ? tmp["字段1"].AsString : ""; if (tmp.Contains("字段2") && tmp["字段2"] != null) { 表对象.属性2 = tmp["字段2"].AsInt64; } ... 表对象.属性N = tmp.Contains("字段N") && tmp["字段N"] != null ? tmp["字段N"].AsString : ""; lst.Add(表对象);}// 新增操作BsonDocument dom = new BsonDocument();dom.Add(new BsonElement("字段1", 字段1值));dom.Add(new BsonElement("字段2", 字段2值));...dom.Add(new BsonElement("字段N", 字段N值));MongoHelperNew.Insert("Jobinfo", dom);// 更新操作// 设置更新的条件(相当于sql语句中的 where 主键/某个字段=值)// 也可以使用 IMongoQuery query = MongoDB.Driver.Builders.Query.EQ("主键/某个字段", 值)// MongoDB.Driver.Builders.Query好多方法可以使用,可以仔细参考一下IMongoQuery query = new QueryDocument("主键/某个字段", 值);// 设置要更新的字段(相当于sql语句中的 set 字段1=字段1值, 字段2=字段2值)var updateValues = new List
();updateValues.Add(MongoDB.Driver.Builders.Update. Set("字段1", 字段1值). Set("字段2", 字段2值). ... Set("字段N", 字段N值) );IMongoUpdate up = new UpdateDocument();up = MongoDB.Driver.Builders.Update.Combine(updateValues);MongoHelperNew.Update("表名", query, up);// 删除操作IMongoQuery query = new QueryDocument("主键/某个字段", 值);MongoHelperNew.Remove("表名", query);

目前只使用到增删查改,至于其他的应用,以后用到的时候再整理。

知行办公,专业移动办公平台 https://zx.naton.cn/

【总监】十二春秋之,3483099@qq.com
Masterzelo616701261@qq.com
【运营】运维艄公,897221533@qq.com
【产品设计】流浪猫,364994559@qq.com
【体验设计】兜兜,2435632247@qq.com
】淘码小工,492395860@qq.comiMcG33Kimcg33k@gmail.com
】人猿居士,1059604515@qq.com;思路的顿悟,1217022114@qq.com
java】首席工程师MR_Wfeixue300@qq.com
【测试】土镜问道,847071279@qq.com
【数据】fox009521,42151960@qq.com;
【安全】保密,你懂的。

转载地址:https://blog.csdn.net/fox009521/article/details/78211408 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:SQL Server:“数据收缩”详解
下一篇:SQL SERVER 存储过程中SELECT 返回值如何赋值给变量

发表评论

最新留言

很好
[***.229.124.182]2024年03月14日 20时10分58秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章

24v开关电源维修技巧_【电视技术】液晶电视电源板十个维修经验分享 2019-04-21
laravel comment显示到页面最上面了_使用 Laravel 快速开发API接口,新手必读 2019-04-21
echart实现3d地图_orbslam_2生成稀疏点云地图的保存与加载的实现 邹鹏程 2019.9.15... 2019-04-21
bash 不是内部或外部命令_python学习笔记6-pip命令不是内部命令问题 2019-04-21
管道的另一端上无任何进程。_别被忽悠入坑!信号贴贴上就能信号满格?对手机信号无任何改善... 2019-04-21
mysql无法写数据库_求助,为何我的数据不能写入数据库 2019-04-21
ssh 两个mysql数据库_ssh连接两个数据库(转) 2019-04-21
mysql 双向链表_23张图!万字详解「链表」,从小白到大佬! 2019-04-21
mysql 常量命名规则_详解Java编程规约(命名风格、常量定义、代码格式) 2019-04-21
pomelo mysql_全文索引 - Pomelo.EFCore.MySql 2019-04-21
如何打开git命令窗口_win10系统如何将右键菜单中“在此处打开powershell窗口”调整为“在此处打开命令窗口”?... 2019-04-21
rtsp 华为_华为多实例生成树RSTP配置详解 2019-04-21
ewb交通灯报告和文件_基于ewb平台的交通灯电路设计.doc 2019-04-21
mysql中$使用_在MySQL中使用序列的简单教程 2019-04-21
mysql alter auto increment_将MySQL列更改为AUTO_INCREMENT 2019-04-21
程序中mysql添加用户_MySQL添加用户的两种方法 2019-04-21
简述mysql安装过程_mysql安装的过程 2019-04-21
后端接口重定向_不用再等后端的接口啦!这个开源项目花 2 分钟就能模拟出后端接口... 2019-04-21
学mysql需要英语水平多高_大学英语专业挂科率高吗 2019-04-21
mysql group by实现_SQL数据分析之 group by 的实现原理 2019-04-21