C#如何對Mongodb進行增刪改查
阿新 • • 發佈:2018-12-24
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中進行檢視,這裡就不在詳說了,希望對大家有所幫助!!