91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

使用C#怎么操作MongoDB數據庫

發布時間:2021-06-11 17:13:16 來源:億速云 閱讀:191 作者:Leah 欄目:編程語言

使用C#怎么操作MongoDB數據庫,針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。

前言

MongoDB是一款由C++編寫的高性能、開源、無模式的常用非關系型數據庫產品,是非關系數據庫當中功能最豐富、最像關系數據庫的數據庫。它擴展了關系型數據庫的眾多功能,例如:輔助索引、范圍查詢、排序等。

MongoDB主要解決的是海量數據的訪問效率問題,它作為分布式數據崛起后,使用較多的一款非結構數據庫,必然有其值得稱道之處,它的主要功能特性如下:

1)面向集合的存儲,適合存儲對象及JSON形式的數據。

2)動態查詢,MongoDB支持豐富的查詢表達式。查詢指令使用JSON形式的標記,可輕易查詢文檔中內嵌的對象及數組。

3)完整的索引支持,包括文檔內嵌對象及數組。MongoDB的查詢優化器會分析查詢表達式,并生成一個高效的查詢計劃。

4)查詢監視,MongoDB包含一個監視工具用于分析數據庫操作的性能。

5)復制及自動故障轉移,MongoDB數據庫支持服務器之間的數據復制,支持主-從模式及服務器之間的相互復制。復制的主要目標是提供冗余及自動故障轉移。

6)高效的傳統存儲方式,支持二進制數據及大型對象(如圖片或視頻)。

7)自動分片以支持云級別的伸縮性,自動分片功能支持水平的數據庫集群,可動態添加額外的機器。

本文主要給大家介紹了關于C#操作MongoDB的相關內容,分享出來供大家參考學習,下面話不多說了,來一起看看詳細的介紹吧

一 安裝MongoDB

二 VS創建新項目

創建一個.netcore console項目, 然后nuget安裝驅動MongoDB.Driver

三 建立連接

Program.Main函數中添加代碼

var client = new MongoClient("mongodb://127.0.0.1:27017");
var database = client.GetDatabase("foo"); 
var collection = database.GetCollection<BsonDocument>("bar");

三個對象, client是連接數據庫的客戶端, database對應庫, collection是對象集合.

對對象的操作是爭對collection來的.

四 操作

1> 插入

var document = new BsonDocument
  {
  { "name", "測試數據1" },
  { "type", "大類" },
  { "number", 5 },
  { "info", new BsonDocument
    {
    { "x", 111 },
    { "y", 222 }
    }}
  };
collection.InsertOne(document);

同理還有InsertMany() ,  鑒于VS高超的智能提示, 一目了然.

2> 查找

上一步插入之后, 通過find將它查找出來

find()需要一個filter參數, 根據條件查詢

collection.Find(Builders<BsonDocument>.Filter.Empty);

上述表示無條件查詢, matches everything.

如果有條件的話, 可以從Builders<BsonDocument>.Filter中選擇, 比如Eq為相等, Lt為小于, Gt大于...顧名思義. 基于VS強大的智能提示, 非常清晰.

舉例條件查詢:

collection.Find(Builders<BsonDocument>.Filter.Eq("name", "測試數據1") & Builders<BsonDocument>.Filter.Lt("number", 6));

多項條件之間的與或關系, 對應使用&和|符號

3> 更新

collection.UpdateMany(Builders<BsonDocument>.Filter.Eq("name", "測試數據1"), Builders<BsonDocument>.Update.Set("number", 6));

更新使用UpdateMany(), 同樣支持條件從Builders<BsonDocument>.Filter中獲取.

更新支持添加新的field, 如:

collection.UpdateMany(Builders<BsonDocument>.Filter.Eq("name", "測試數據1"), Builders<BsonDocument>.Update.Set("number2", 666));

4> 刪除

collection.DeleteMany()

其他幾個API大同小異

五 BsonDocument到自定義class Object的相互轉換

不要引入Json.Net(Newtonsoft.Json)

1> 自定義類型到BsonDocument

  擴展函數:

    entity.ToBsonDocument()

2> BsonDocument到自定義類型

  通常是在Find的時候吧,  IFindFluent.As<TEntity>()轉就可以了.

var result = collection
    .Find((Builders<BsonDocument>.Filter.Lt("number",999) & Builders<BsonDocument>.Filter.Gt("number", 110)) & Builders<BsonDocument>.Filter.Eq("name", "測試數據1"))          .OrderBy(x=>x["number"])//排序
    .Skip(10)//跳過
    .Limit(10)//限制    .As<Bar>()//m=>o
    .ToList();//像極了Linq吧?

  如果不是呢?

var entity = BsonSerializer.Deserialize<Bar>(bson);

用到的自定義class大概長這樣:

public class Bar
 {
  public ObjectId _id { get; set; }
  public string name { get; set; }
  public string type { get; set; }
  public int number { get; set; }
  public int number2 { get; set; }
  public BarInfo info { get; set; }

  public class BarInfo
  {
   public int x { get; set; }
   public int y { get; set; }
  }
 }

關于使用C#怎么操作MongoDB數據庫問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業資訊頻道了解更多相關知識。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

呼图壁县| 万全县| 绿春县| 西昌市| 时尚| 自贡市| 绍兴市| 萝北县| 彰化市| 石门县| 翼城县| 宁阳县| 台北县| 闵行区| 加查县| 琼中| 永和县| 闽侯县| 青州市| 安新县| 华安县| 乌拉特前旗| 奈曼旗| 珲春市| 仙居县| 四平市| 鄂托克旗| 鄂伦春自治旗| 永定县| 崇礼县| 金塔县| 宁陵县| 南澳县| 土默特左旗| 南投市| 郯城县| 五寨县| 始兴县| 锡林郭勒盟| 紫阳县| 增城市|