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

.NET連接MongoDB數(shù)據(jù)庫實例教程

 更新時間:2013年11月28日 09:17:07   作者:  
這則小竅門將講述如何開發(fā)一個.NET應用來連接Mongo數(shù)據(jù)庫并執(zhí)行多種操作。同時還稍微涉及了Mongo數(shù)據(jù)庫和多種命令



使用代碼

讓我們從Mongo數(shù)據(jù)庫的一些細節(jié)和基本命令開始,并最終介紹如何創(chuàng)建一個可連接至Mongo數(shù)據(jù)庫的.NET Windows應用。

Mongo數(shù)據(jù)庫

MongoDB 是一個跨平臺、文檔導向的數(shù)據(jù)庫系統(tǒng),它被歸類為“NoSQL”數(shù)據(jù)庫。MongoDB避開了傳統(tǒng)的基于表的關(guān)系數(shù)據(jù)庫結(jié)構(gòu),而是使用了帶動態(tài)模式的類JSON文檔。MongoDB將這種格式稱為BSON(二進制JSON)。這種動態(tài)模式使得特定類型應用中的數(shù)據(jù)整合更簡單、更快速。MongoDB是自由且開源的軟件。

Mongo數(shù)據(jù)庫的特性

Ad hoc 查詢
1 標引
2 復制
3 負載均衡
4 文件存貯
5 聚合
6 服務器端 JavaScript 執(zhí)行
7 定容集合

用戶可從 此處 下載Mongo數(shù)據(jù)庫,然后將其中內(nèi)容解壓至任一文件夾。 文件下載完成后,用戶需要配置MongoDB的數(shù)據(jù)文件夾。做法是在“C:\Data”文件夾下創(chuàng)建一個名為“DB”的文件夾。

數(shù)據(jù)文件夾創(chuàng)建好以后,可以通過用命令行提示符在“bin”文件夾下運行“mongod.exe”來啟動Mongo數(shù)據(jù)庫。


現(xiàn)在數(shù)據(jù)庫已經(jīng)啟動,并正在運行。

創(chuàng)建一個.NET應用
創(chuàng)建一個.NET web/Windows應用。在這個示例中,我們將用一個簡單的員工表。
開始之前,我們需要確保系統(tǒng)中裝有MongoDB的.NET驅(qū)動。你可以按下面的步驟來為一個指定的項目安裝驅(qū)動。
打開Visual Studio的包管理器:

打開包管理器控制臺后,用戶可以執(zhí)行下面的命令:

復制代碼 代碼如下:

Install-Package mongocsharpdriver

在項目中添加對下列命名空間的引用:

復制代碼 代碼如下:

using MongoDB.Bson;
using MongoDB.Driver;
//此外,你將頻繁的用到下面這些 using 語句中的一條或多條:
using MongoDB.Driver.Builders;
using MongoDB.Driver.GridFS;
using MongoDB.Driver.Linq;


聲明數(shù)據(jù)庫服務器和數(shù)據(jù)庫的變量:


復制代碼 代碼如下:

MongoServer _server;
MongoDatabase _database;

用下面的命令連接至數(shù)據(jù)庫。在這里,數(shù)據(jù)庫服務器是在本地主機上運行的,端口為:27017,數(shù)據(jù)庫名為“ anoop”。

復制代碼 代碼如下:

private void Form1_Load(object sender, EventArgs e)
{
    string connection = "mongodb://localhost:27017";
    _server = MongoServer.Create(connection);
    _database = _server.GetDatabase("anoop", SafeMode.True);
}

在這里,我們創(chuàng)建了三個使用不同屬性集合的類。我們可以設(shè)置這些類的屬性,并將數(shù)據(jù)保存至同一個數(shù)據(jù)庫、同一個表。這是無模式數(shù)據(jù)庫的真正優(yōu)勢:插入數(shù)據(jù)時不檢查模式。保存不同的記錄時可以用不同的域的集合,而其它的域 將 默認被視為NULL。

復制代碼 代碼如下:

public class Users1
 {
     public ObjectId Id { get; set; }
     public string Name { get; set; }
     public int Age { get; set; }
 }
 public class Users2
 {
     public ObjectId Id { get; set; }
     public string Name { get; set; }
     public string Location { get; set; }
 }
 public class Users3
 {
     public ObjectId Id { get; set; }
     public string Name { get; set; }
     public int Age { get; set; }
     public string Location { get; set; }
 }
 private void rbEntity1_CheckedChanged(object sender, EventArgs e)
 {
     txtName.Enabled = true;
     txtAge.Enabled = true;
     txtLocation.Enabled = true;
 }
 private void rbEntity2_CheckedChanged(object sender, EventArgs e)
 {
     txtName.Enabled = true;
     txtAge.Enabled = false;
     txtLocation.Enabled = true;
 }
 private void rbEntity3_CheckedChanged(object sender, EventArgs e)
 {
     txtName.Enabled = true;
     txtAge.Enabled = true;
     txtLocation.Enabled = false;
 }
 private void btnSave_Click(object sender, EventArgs e)
 {
     if (rbEntity1.Checked)
     {
         var _users = _database.GetCollection<users3 />("users");
         var user = new Users3 { };
         user.Age = Convert.ToInt32(txtAge.Text);
         user.Name = txtName.Text;
         user.Location = txtLocation.Text;
         _users.Insert(user);
         var id = user.Id;
     }
     else if (rbEntity2.Checked)
     {
         var _users = _database.GetCollection<users2 />("users");
         var user = new Users2 { };
         user.Name = txtName.Text;
         user.Location = txtLocation.Text;
         _users.Insert(user);
         var id = user.Id;
     }
     else if (rbEntity3.Checked)
     {
         var _users = _database.GetCollection<users1 />("users");
         var user = new Users1 { };
         user.Age = Convert.ToInt32(txtAge.Text);
         user.Name = txtName.Text;
         _users.Insert(user);
         var id = user.Id;
     }
     MessageBox.Show("User with name " + txtName.Text + " created");
 }

復制代碼 代碼如下:

///下面的代碼幫助你從Mongo數(shù)據(jù)庫中查找一條現(xiàn)有記錄。
_collection = _database.GetCollection<users1 />("users");
IMongoQuery query = Query.EQ("Name", "Anoop");
Users1 _user = _collection.FindAs<users1 />(query).FirstOrDefault();
MessageBox.Show(_user.Age.ToString());

復制代碼 代碼如下:

///下面的代碼幫助你更新Mongo數(shù)據(jù)庫中的一條現(xiàn)有記錄。
_collection = _database.GetCollection<users1 />("users");
IMongoQuery query = Query.EQ("Name", "Anoop");
Users1 _user = _collection.FindAs<users1 />(query).FirstOrDefault();
MessageBox.Show("Age before update :" + _user.Age.ToString());
//更新年齡的值
_user.Age = 30;

//保存更改           
_collection.Save(_user);
MessageBox.Show("Age after update :" + _user.Age.ToString());

相關(guān)文章

  • 詳解C#中的屬性和屬性的使用

    詳解C#中的屬性和屬性的使用

    這篇文章主要介紹了C#中的屬性和屬性的使用,包括get訪問器和set訪問器等內(nèi)容,需要的朋友可以參考下
    2016-01-01
  • Unity實現(xiàn)主角移動與攝像機跟隨

    Unity實現(xiàn)主角移動與攝像機跟隨

    這篇文章主要為大家詳細介紹了Unity實現(xiàn)主角移動與攝像機跟隨,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-03-03
  • 一篇文章徹底搞清楚c#中的委托與事件

    一篇文章徹底搞清楚c#中的委托與事件

    這篇文章主要給大家介紹了如何通過一篇文章徹底搞清楚c#中的委托與事件,文中通過示例代碼介紹的非常詳細,對大家學習或者使用c#具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2019-07-07
  • C# 全角和半角轉(zhuǎn)換以及判斷的簡單代碼

    C# 全角和半角轉(zhuǎn)換以及判斷的簡單代碼

    這篇文章介紹了在C#中判斷和轉(zhuǎn)換全角半角的方法,有需要的朋友可以參考一下
    2013-07-07
  • C#中dictionary如何根據(jù)索引值獲取Key值

    C#中dictionary如何根據(jù)索引值獲取Key值

    這篇文章主要介紹了C#中dictionary如何根據(jù)索引值獲取Key值問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2025-04-04
  • C# windows語音識別與朗讀實例

    C# windows語音識別與朗讀實例

    這篇文章主要為大家詳細介紹了C# windows語音識別與朗讀實例,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-07-07
  • C#多線程ThreadPool線程池詳解

    C#多線程ThreadPool線程池詳解

    這篇文章主要為大家詳細介紹了C#多線程ThreadPool線程池的相關(guān)資料,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-07-07
  • C#將Excel中的數(shù)據(jù)轉(zhuǎn)換成DataSet

    C#將Excel中的數(shù)據(jù)轉(zhuǎn)換成DataSet

    這篇文章主要介紹了C#將Excel中的數(shù)據(jù)轉(zhuǎn)換成DataSet的方法,非常簡單實用,從本人項目中提取出來的,推薦給大家,希望對大家學習C#能夠有所幫助。
    2015-03-03
  • WPF自定義MenuItem樣式的實現(xiàn)方法

    WPF自定義MenuItem樣式的實現(xiàn)方法

    這篇文章主要給大家介紹了關(guān)于WPF自定義MenuItem樣式的實現(xiàn)方法,文中通過示例代碼介紹的非常詳細,對大家學習或者使用WPF具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2019-06-06
  • C# Entity Framework中的IQueryable和IQueryProvider詳解

    C# Entity Framework中的IQueryable和IQueryProvider詳解

    這篇文章主要介紹了C# Entity Framework中的IQueryable和IQueryProvider詳解,本文使用實例分析這兩個接口的內(nèi)部實現(xiàn),需要的朋友可以參考下
    2015-01-01

最新評論

郁南县| 遂平县| 莱芜市| 大兴区| 墨竹工卡县| 泗阳县| 宁武县| 措勤县| 陕西省| 澎湖县| 南平市| 宁安市| 巧家县| 阿拉善右旗| 揭东县| 信阳市| 大荔县| 青岛市| 诏安县| 雅安市| 三门峡市| 彩票| 思茅市| 河池市| 临澧县| 藁城市| 灵璧县| 安溪县| 澄江县| 万荣县| 绥江县| 灵寿县| 冀州市| 收藏| 罗城| 隆子县| 醴陵市| 霸州市| 合作市| 清涧县| 台南市|