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); MongoCollectioncollection = 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); MongoCollectioncollection = 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); MongoCollectioncollection = 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); 表model类> 表model类>
目前只使用到增删查改,至于其他的应用,以后用到的时候再整理。
知行办公,专业移动办公平台 https://zx.naton.cn/ 【总监】十二春秋之,3483099@qq.com; 【Master】zelo,616701261@qq.com; 【运营】运维艄公,897221533@qq.com; 【产品设计】流浪猫,364994559@qq.com; 【体验设计】兜兜,2435632247@qq.com; 【】淘码小工,492395860@qq.com;iMcG33K,imcg33k@gmail.com; 【】人猿居士,1059604515@qq.com;思路的顿悟,1217022114@qq.com; 【java】首席工程师MR_W,feixue300@qq.com; 【测试】土镜问道,847071279@qq.com; 【数据】fox009521,42151960@qq.com; 【安全】保密,你懂的。
转载地址:https://blog.csdn.net/fox009521/article/details/78211408 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
很好
[***.229.124.182]2024年03月14日 20时10分58秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
24v开关电源维修技巧_【电视技术】液晶电视电源板十个维修经验分享
2019-04-21
bash 不是内部或外部命令_python学习笔记6-pip命令不是内部命令问题
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
rtsp 华为_华为多实例生成树RSTP配置详解
2019-04-21
ewb交通灯报告和文件_基于ewb平台的交通灯电路设计.doc
2019-04-21
mysql中$使用_在MySQL中使用序列的简单教程
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