C# API文檔:http://api.mongodb.org/csharp/2.2/html/R_Project_CSharpDriverDocs.htmhtml
驅動文檔:https://docs.mongodb.org/ecosystem/drivers/csharp/mongodb
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); } } }
查找數據數據庫
更新單個數據api
更新多個字段數組
在聲明修改條件時,先聲明一個數組,將其中須要設置的值寫入,在須要運行命令時使用Builders<BsonDocument>.Update.Combine()方法進行合併修改方法 ide
計算字段函數
參考地址:ui
http://www.javashuo.com/article/p-nktiwrxu-e.htmlspa
https://blog.csdn.net/shiyaru1314/article/details/53672609.net