首页 / C# / c# Mongodb
c# Mongodb
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了c# Mongodb,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含4500字,纯文字阅读大概需要7分钟。
内容图文
![c# Mongodb](/upload/InfoBanner/zyjiaocheng/915/0c991a951b024dad8914fab39363b071.jpg)
C# API文档:http://api.mongodb.org/csharp/2.2/html/R_Project_CSharpDriverDocs.htm
驱动文档:https://docs.mongodb.org/ecosystem/drivers/csharp/
![c# Mongodb - 文章图片](/upload/getfiles/0001/2021/5/9/20210509100848954.jpg)
![c# Mongodb - 文章图片](/upload/getfiles/0001/2021/5/9/20210509100848986.jpg)
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using MongoDB.Bson; using MongoDB.Driver; namespace MES_MonitoringService.Common { /// <summary> /// Mongodb操作类 /// </summary> public class MongodbHandler { /*默认MongoDB参数*/ /*-------------------------------------------------------------------------------------*/ public static string MongodbServiceName = Common.ConfigFileHandler.GetAppConfig("MongodbServiceName"); private static string MongodbDefaultUrl = Common.ConfigFileHandler.GetAppConfig("MongodbURL"); private static string MongodbDefaultDBName = Common.ConfigFileHandler.GetAppConfig("MongodbName"); // 定义一个静态变量来保存类的实例 private static MongodbHandler uniqueInstance; //定义一个标识确保线程同步 private static readonly object locker = new object(); /*构造函数*/ /*-------------------------------------------------------------------------------------*/ /// <summary> /// mongo连接客户端 /// </summary> public static MongoClient mc_MongoClient = null; /// <summary> /// mongo数据库 /// </summary> public IMongoDatabase mc_MongoDatabase = null; /*构造函数*/ /*-------------------------------------------------------------------------------------*/ /// <summary> /// 定义私有构造函数,使外界不能创建该类实例 /// </summary> private MongodbHandler() { if (!Common.CommonFunction.ServiceRunning(MongodbServiceName)) { throw new Exception("Mongodb 服务未安装或未运行,无法连接至Mongodb"); } //client mc_MongoClient = new MongoClient(MongodbDefaultUrl); //database mc_MongoDatabase = mc_MongoClient.GetDatabase(MongodbDefaultDBName); } /// <summary> /// 定义公有方法提供一个全局访问点,同时你也可以定义公有属性来提供全局访问点 /// </summary> /// <returns></returns> public static MongodbHandler GetInstance() { // 当第一个线程运行到这里时,此时会对locker对象 "加锁", // 当第二个线程运行该方法时,首先检测到locker对象为"加锁"状态,该线程就会挂起等待第一个线程解锁 // lock语句运行完之后(即线程运行完之后)会对该对象"解锁" // 双重锁定只需要一句判断就可以了 if (uniqueInstance == null) { lock (locker) { // 如果类的实例不存在则创建,否则直接返回 if (uniqueInstance == null) { uniqueInstance = new MongodbHandler(); } } } return uniqueInstance; } /// <summary> /// 获取数据集 /// </summary> /// <param name="collectionName"></param> /// <returns></returns> public IMongoCollection<BsonDocument> GetCollection(string collectionName) { return mc_MongoDatabase.GetCollection<BsonDocument>(collectionName); } /*操作数据*/ /*-------------------------------------------------------------------------------------*/ /// <summary> /// 数据集插入一条数据 /// </summary> /// <param name="collection"></param> /// <param name="newDocument"></param> public void InsertOne(IMongoCollection<BsonDocument> collection, BsonDocument newDocument) { collection.InsertOne(newDocument); } /// <summary> /// 找到所有 /// </summary> /// <param name="collection"></param> /// <returns></returns> public MongoDB.Driver.Linq.IMongoQueryable FindAll(IMongoCollection<BsonDocument> collection) { return collection.AsQueryable<BsonDocument>(); } /// <summary> /// 找到一条 /// </summary> /// <param name="collection"></param> /// <param name="filter"></param> /// <returns></returns> public IFindFluent<BsonDocument,BsonDocument> Find(IMongoCollection<BsonDocument> collection, FilterDefinition<BsonDocument> filter) { return collection.Find(filter); } /// <summary> /// 找到并更新 /// </summary> /// <param name="collection"></param> /// <param name="filter"></param> /// <param name="update"></param> /// <returns></returns> public BsonDocument FindOneAndUpdate(IMongoCollection<BsonDocument> collection, FilterDefinition<BsonDocument> filter,UpdateDefinition<BsonDocument> update) { return collection.FindOneAndUpdate(filter, update); } /// <summary> /// 找到并删除 /// </summary> /// <param name="collection"></param> /// <param name="filter"></param> /// <returns></returns> public BsonDocument FindOneAndDelete(IMongoCollection<BsonDocument> collection, FilterDefinition<BsonDocument> filter) { return collection.FindOneAndDelete(filter); } } }封装类
查找数据
更新单个数据
更新多个字段
在声明修改条件时,先声明一个数组,将其中需要设置的值写入,在需要运行命令时使用Builders<BsonDocument>.Update.Combine()方法进行合并修改方法
计算字段
参考地址:
https://www.cnblogs.com/knowledgesea/p/5050969.html
https://blog.csdn.net/shiyaru1314/article/details/53672609
https://www.cnblogs.com/axel10/p/8459996.html
内容总结
以上是互联网集市为您收集整理的c# Mongodb全部内容,希望文章能够帮你解决c# Mongodb所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。