最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C#中使用1.7版本驅(qū)動操作MongoDB簡單例子

 更新時間:2015年01月05日 08:57:30   投稿:junjie  
這篇文章主要介紹了C#中使用1.7版本驅(qū)動操作MongoDB簡單例子,本文給出了連接MongoDB、操作MongoDB數(shù)據(jù)等例子,需要的朋友可以參考下

復制代碼 代碼如下:

//創(chuàng)建數(shù)據(jù)庫鏈接
//在1.7的版本驅(qū)動中這樣寫是會報 MongoServer方法已過時的
//MongoServer server =  MongoDB.Driver.MongoServer.Create(strconn); 


//帶有用戶名,密碼的如下寫法,不帶的則直接ip+端口就可以
const string connectionString = "mongodb://city:liyang@192.168.1.211:27017";
//得到一個客戶端對象的引用                    GetServer()對服務器對象的引用          
var Server = new MongoClient(connectionString).GetServer();
//到一個數(shù)據(jù)庫對象的引用
var client = Server.GetDatabase("City");
//對一組對象的引用
var collection = client.GetCollection<citys>("citys");

//插入一個 實體
for (int i = 0; i < dt.Rows.Count; i++)
{
    collection.Insert(new citys
    {
        province = dt.Rows[i][0].ToString(),
        city = dt.Rows[i][1].ToString(),
        county = dt.Rows[i][2].ToString(),
        areacode = "0" + dt.Rows[i][3].ToString(),
        postalcode = dt.Rows[i][3].ToString()
    });
}

以下是git上的幫助文檔  地址是:http://docs.mongodb.org/ecosystem/tutorial/getting-started-with-csharp-driver/
將一個引用添加到c#司機dll

右鍵單擊 引用 文件夾在Visual Studio的解決方案 探險家和選擇 添加 參考…… 。 導航到文件夾 c#驅(qū)動程序dll被安裝并添加一個引用以下 dll:

復制代碼 代碼如下:

    MongoDB.Bson.dll
    MongoDB.Driver.dll

作為一種替代方法可以使用 NuGet 包管理器添加c# 驅(qū)動程序包來您的解決方案。
添加所需的 使用 語句

作為一個最低需要使用語句如下:

復制代碼 代碼如下:

using MongoDB.Bson;
using MongoDB.Driver;

此外,您會經(jīng)常添加一個或多個使用 聲明:
復制代碼 代碼如下:

using MongoDB.Driver.Builders;
using MongoDB.Driver.GridFS;
using MongoDB.Driver.Linq;

還有其他名稱空間,只會在特殊的需要 用例。
得到一個客戶端對象的引用

最簡單的方法獲得一個客戶對象的引用是使用 連接字符串:

復制代碼 代碼如下:

var connectionString = "mongodb://localhost";
var client = new MongoClient(connectionString);

如果你想將客戶端對象存儲在一個全局變量。 MongoClient 是線程安全的。
對服務器對象的引用

要從客戶端到服務器對象的引用對象,寫 這樣的:

復制代碼 代碼如下:

var server = client.GetServer();

到一個數(shù)據(jù)庫對象的引用

去到一個數(shù)據(jù)庫對象的引用從服務器對象,寫 這樣的:

復制代碼 代碼如下:

var database = server.GetDatabase("test"); // "test" is the name of the database

如果您使用多個數(shù)據(jù)庫,調(diào)用 GetDatabase 再次為每個 您想要使用數(shù)據(jù)庫。
BsonDocument 對象模型與您自己的域類

有兩種方法可以處理集合:

    使用 BsonDocument 對象模型
    使用自己的域類

您將使用 BsonDocument 當數(shù)據(jù)對象模型 工作是如此的自由形式,它將是困難的或不可能的 定義的域類。

因為它是如此容易使用自己的域類 快速啟動將假設你要這樣做。 c#驅(qū)動程序 提供,他們可以處理您的域類:

    有一個無參數(shù)的構(gòu)造函數(shù)
    定義公共讀/寫數(shù)據(jù)的字段或?qū)傩?存儲在數(shù)據(jù)庫中

這些需求在本質(zhì)上是相同的。net的實施 XmlSerializer。

此外,如果您的域類將被用作根 文檔必須包含一個 ID 字段或?qū)傩?通常是命名 ID 盡管你可以覆蓋,如果必要)。 通常情況下, ID 將類型的 ObjectId ,但沒有限制的類型 的成員。

考慮下面的類定義:

復制代碼 代碼如下:

public class Entity
{
    public ObjectId Id { get; set; }

    public string Name { get; set; }
}


對一組對象的引用

你會得到一個包含引用集合 實體 文件是這樣的:

復制代碼 代碼如下:

// "entities" is the name of the collection
var collection = database.GetCollection<Entity>("entities");

插入文檔

插入一個 實體 :

復制代碼 代碼如下:

var entity = new Entity { Name = "Tom" };
collection.Insert(entity);
var id = entity.Id; // Insert will set the Id if necessary (as it was in this example)

找到一個現(xiàn)有的文檔

在這個示例中,我們將讀回 實體 假設我們知道 ID 值:

復制代碼 代碼如下:

var query = Query<Entity>.EQ(e => e.Id, id);
var entity = collection.FindOne(query);

查詢<單位> .EQ 使用 查詢< T > 構(gòu)建器類來構(gòu)建 查詢。 lambda表達式 E = > e.Id 是翻譯 _ID 。 這是 字段的名稱存儲在數(shù)據(jù)庫中。

請注意

通常的名稱字段在數(shù)據(jù)庫中是完全相同的 正如它的名字域類中的字段或?qū)傩?但是 ID 是一個例外,映射到嗎 _ID 在數(shù)據(jù)庫中。

其他查詢操作符包括: GT , 一種 , 在 , LT , LTE , 附近 , 東北 , 和 , 或 (和其他一些更多 專業(yè)的)。
保存一個文檔

你可以保存更改現(xiàn)有的文檔如下:

復制代碼 代碼如下:

entity.Name = "Dick";
collection.Save(entity);

更新現(xiàn)有的文檔

另一種選擇 保存 是 更新 。 所不同的是, 保存 將整個文檔發(fā)送回服務器,但是 更新 發(fā)的變化。 例如:

復制代碼 代碼如下:

var query = Query<Entity>.EQ(e => e.Id, id);
var update = Update<Entity>.Set(e => e.Name, "Harry"); // update modifiers
collection.Update(query, update);

下面的例子使用了 更新< T > 構(gòu)建器輕松地構(gòu)建更新 修飾符。
刪除一個現(xiàn)有的文檔

刪除一個現(xiàn)有的文檔集合你寫:

復制代碼 代碼如下:

var query = Query<Entity>.EQ(e => e.Id, id);
collection.Remove(query);

你不需要調(diào)用連接或斷開連接

c#司機有一個連接池使用連接到服務器 效率。 不需要電話 連接 或 斷開 ; 讓司機照顧連接(調(diào)用 連接 是無害的,但是打電話呢 斷開 是不好的,因為它關(guān)閉 連接池中的連接)。
完整的示例程序

復制代碼 代碼如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

using MongoDB.Bson;
using MongoDB.Driver;
using MongoDB.Driver.Builders;

namespace ConsoleApplication1
{
    public class Entity
    {
        public ObjectId Id { get; set; }
        public string Name { get; set; }
    }

    class Program
    {
        static void Main(string[] args)
        {
            var connectionString = "mongodb://localhost";
            var client = new MongoClient(connectionString);
            var server = client.GetServer();
            var database = server.GetDatabase("test");
            var collection = database.GetCollection<Entity>("entities");

            var entity = new Entity { Name = "Tom" };
            collection.Insert(entity);
            var id = entity.Id;

            var query = Query<Entity>.EQ(e => e.Id, id);
            entity = collection.FindOne(query);

            entity.Name = "Dick";
            collection.Save(entity);

            var update = Update<Entity>.Set(e => e.Name, "Harry");
            collection.Update(query, update);

            collection.Remove(query);
        }
    }
}

相關(guān)文章

  • vscode編寫latex的方法

    vscode編寫latex的方法

    這篇文章主要介紹了vscode編寫latex的方法,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-07-07
  • C#中使用DevExpress中的ChartControl實現(xiàn)極坐標圖的案例詳解

    C#中使用DevExpress中的ChartControl實現(xiàn)極坐標圖的案例詳解

    這篇文章主要介紹了在C#中使用DevExpress中的ChartControl實現(xiàn)極坐標圖,本案例是使用的是DevExpress 18.1.3版本,之前在14版本上也試過,但是有一個弊端就是實現(xiàn)極坐標圖的時候,第一個點和最后一個點總是自動多一條閉合線,會形成一個閉合的多邊形,因此升級了一下版
    2022-02-02
  • 開源一個c# 新的雪花算法

    開源一個c# 新的雪花算法

    這篇文章主要介紹了開源一個c# 新的雪花算法的相關(guān)資料,幫助大家更好的理解和學習使用c#,感興趣的朋友可以了解下
    2021-03-03
  • C# Windows API應用之基于GetDesktopWindow獲得桌面所有窗口句柄的方法

    C# Windows API應用之基于GetDesktopWindow獲得桌面所有窗口句柄的方法

    這篇文章主要介紹了C# Windows API應用之基于GetDesktopWindow獲得桌面所有窗口句柄的方法,結(jié)合實例形式分析了GetDesktopWindow函數(shù)用于獲取窗口句柄的具體使用方法與相關(guān)注意事項,需要的朋友可以參考下
    2016-08-08
  • C#中的IEnumerable簡介及簡單實現(xiàn)實例

    C#中的IEnumerable簡介及簡單實現(xiàn)實例

    這篇文章主要介紹了C#中的IEnumerable簡介及簡單實現(xiàn)實例,本文講解了IEnumerable一些知識并給出了一個簡單的實現(xiàn),需要的朋友可以參考下
    2015-03-03
  • c#文件的I/O基本操作

    c#文件的I/O基本操作

    System.IO命名空間包含允許在數(shù)據(jù)流和文件上進行同步,異步及寫入的類型,下面是關(guān)于c#文件的I/O基本操作講解,需要的朋友可以參考下
    2014-03-03
  • C#異步方法返回void與Task的區(qū)別詳解

    C#異步方法返回void與Task的區(qū)別詳解

    這篇文章主要給大家介紹了關(guān)于C#異步方法返回void與Task的區(qū)別的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-03-03
  • C#控制臺基礎 List泛型集合與對應的數(shù)組相互轉(zhuǎn)換實現(xiàn)代碼

    C#控制臺基礎 List泛型集合與對應的數(shù)組相互轉(zhuǎn)換實現(xiàn)代碼

    這篇文章主要介紹了C#控制臺基礎 List泛型集合與對應的數(shù)組相互轉(zhuǎn)換實現(xiàn)代碼,需要的朋友可以參考下
    2016-12-12
  • C#實現(xiàn)快速查詢文件的方法

    C#實現(xiàn)快速查詢文件的方法

    這篇文章介紹了C#實現(xiàn)快速查詢文件的方法,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-06-06
  • C#正則表達式轉(zhuǎn)義字符介紹

    C#正則表達式轉(zhuǎn)義字符介紹

    正則表達式,又稱正規(guī)表示法、常規(guī)表示法。這篇文章主要介紹了C#正則表達式轉(zhuǎn)義字符介紹的相關(guān)資料,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2016-07-07

最新評論

罗江县| 德惠市| 隆子县| 三亚市| 普洱| 和政县| 舒兰市| 阿克陶县| 西昌市| 通化市| 永康市| 儋州市| 施秉县| 荆州市| 白沙| 若尔盖县| 荔波县| 金塔县| 民丰县| 长海县| 浦北县| 法库县| 普兰县| 曲麻莱县| 千阳县| 呼和浩特市| 贵州省| 麻栗坡县| 当涂县| 永泰县| 阳曲县| 阿拉善右旗| 兴国县| 米林县| 枣庄市| 尼木县| 清新县| 黎城县| 阿鲁科尔沁旗| 巴彦淖尔市| 长春市|