1. 程式人生 > >C#如何對Mongodb進行增刪改查

C#如何對Mongodb進行增刪改查

   MongoDB是一個基於分散式檔案儲存的資料庫。由C++語言編寫。旨在為WEB應用提供可擴充套件的高效能資料儲存解決方案。
   它的特點是高效能、易部署、易使用,儲存資料非常方便。

如今MongoDB已經跟新到3.4版本,但是對於更新後的版本網上資料更多是針對老版本,有些API在新版本中是被廢棄掉的。本文將介紹C#如何對window下Mongodb3.4進行簡單的增刪改查。

1、下載Mongodb,下載地址如下:

安裝成功後(我這裡是安裝在D盤),需要在D盤中(如果安裝在C盤,就在C盤中)建立一個Data資料夾,然後在Data資料夾中新建一個db資料夾,如下圖所示:
這裡寫圖片描述

2、執行Mongodb服務

在Mongodb資料夾bin中,可以找到mongod.exe(服務端)和mongo.exe(客戶端),我們需要用cmd以管理員身份執行mongod.exe,執行結果如圖所示:
這裡寫圖片描述
這樣Monodb服務就開啟成功(mongodb預設分配的埠號都是27017)

我們再以相同的方式執行mongo.exe,執行結果如圖所示:
這裡寫圖片描述

這裡寫圖片描述
Mongodb伺服器顯示連線上來的客戶端資訊。

3、C#通過程式碼實現對Mongodb的增刪改查

3.1 建立Console控制檯專案
3.2 新增MongoDB.Drive.dll(Nuget可以下載)
3.3 程式碼如下:

using
System; using System.Collections.Generic; using System.Linq; using System.Text; using MongoDB.Driver; using MongoDB.Bson; namespace Mongo_T { class Program { static void Main(string[] args) { var connStr = "mongodb://127.0.0.1:27017/?safe=true"; var client = new
MongoClient(connStr); //建立或開啟已有資料庫test var database = client.GetDatabase("test"); //collection類似與資料庫中的table,這裡建立了名字為person的collection,存放Person物件 var collection = database.GetCollection<Person>("person"); Person p = new Person(); p.Name = "xxx"; p.Pwd = "123"; p.Score = "80"; //Insert Data collection.InsertOne(person); //Delete Data var filter = Builders<Person>.Filter.Eq("Name","g"); //匹配Name 為 “g” 的資料 var result = collection.DeleteOne(filter); //Update Data var filter = Builders<Person>.Filter.Eq("Name","g"); var update = Builders<Person>.Update.Set("Pwd","123"); var result = collection.UpdateOne(filter,update); // Update Multiple Documents var builder = Builders<Person>.Filter; var filter = builder.Eq("Name","g") & builder.Eq("Pwd","123"); var update = Builders<Person>.Update.Set("field","value"); var result = collection.UpdateMany(filter,update); //Query Data var filter = Builders<Person>.Filter.Eq("Name","g"); var result = collection.Find(filter).ToList(); //Greater Than Operator($gt) var filter = Builders<Person>.Filter.Gt("Score",60); var result = collection.Find(filter).ToList(); //獲取分數超過60的集合 //Less Than Operator($lt) var filter = Builders<Person>.Filter.Lt("Score",60); var result = collection.Find(filter).ToList(); //獲取分數低於60的集合 //新增單個索引 Name var keys = Builders<Person>.IndexKeys.Ascending("Name"); collection.Indexes.CreateOne(keys); //新增多個索引 var keys = Builders<Person>.IndexKeys.Ascending("Name").Ascending("Pwd"); collection.Indexes.CreateOne(keys); Console.ReadKey(); } } public class Person { public ObjectId _id {get; set;} public string Name {get; set;} public string Pwd {get; set;} public string Score {get; set;} } }

在這裡進行的操作我們可以在mongo.exe中進行檢視,這裡就不在詳說了,希望對大家有所幫助!!