• NET連接MongoDB數據庫實例方法

    時間:2022-06-27 09:14:38 數據庫操作系統 我要投稿
    • 相關推薦

    NET連接MongoDB數據庫實例方法

      使用代碼

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

      Mongo數據庫

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

      Mongo數據庫的特性

      Ad hoc 查詢

      1 標引

      2 復制

      3負載均衡

      4 文件存貯

      5 聚合

      6 服務器端 JavaScript 執行

      7 定容集合

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

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

      現在數據庫已經啟動,并正在運行。

      創建一個.NET應用

      創建一個.NET web/Windows應用。在這個示例中,我們將用一個簡單的員工表。

      開始之前,我們需要確保系統中裝有MongoDB的.NET驅動。你可以按下面的步驟來為一個指定的項目安裝驅動。

      打開Visual Studio的包管理器:

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

      復制代碼 代碼如下:

      Install-Package mongocsharpdriver

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

      復制代碼 代碼如下:

      using MongoDB.Bson;

      using MongoDB.Driver;

      //此外,你將頻繁的用到下面這些 using 語句中的一條或多條:

      using MongoDB.Driver.Builders;

      using MongoDB.Driver.GridFS;

      using MongoDB.Driver.Linq;

      聲明數據庫服務器和數據庫的變量:

      復制代碼 代碼如下:

      MongoServer _server;

      MongoDatabase _database;

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

      復制代碼 代碼如下:

      private void Form1_Load(object sender, EventArgs e)

      {

      string connection = "mongodb://localhost:27017";

      _server = MongoServer.Create(connection);

      _database = _server.GetDatabase("anoop", SafeMode.True);

      }

      在這里,我們創建了三個使用不同屬性集合的類。我們可以設置這些類的屬性,并將數據保存至同一個數據庫、同一個表。這是無模式數據庫的真正優勢:插入數據時不檢查模式。保存不同的記錄時可以用不同的域的集合,而其它的域 將 默認被視為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("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("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("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數據庫中查找一條現有記錄。

      _collection = _database.GetCollection("users");

      IMongoQuery query = Query.EQ("Name", "Anoop");

      Users1 _user = _collection.FindAs(query).FirstOrDefault();

      MessageBox.Show(_user.Age.ToString());

      復制代碼 代碼如下:

      ///下面的代碼幫助你更新Mongo數據庫中的一條現有記錄。

      _collection = _database.GetCollection("users");

      IMongoQuery query = Query.EQ("Name", "Anoop");

      Users1 _user = _collection.FindAs(query).FirstOrDefault();

      MessageBox.Show("Age before :" + _user.Age.ToString());

      //更新年齡的值

      _user.Age = 30;

      //保存更改

      _collection.Save(_user);

      MessageBox.Show("Age after :" + _user.Age.ToString());

    【NET連接MongoDB數據庫實例方法】相關文章:

    6個安全設置mongodb數據庫的命令07-01

    使用Java程序連接各種數據庫的方法07-01

    電路的連接方法07-03

    用php連接oracle數據庫的代碼06-28

    計算機三級數據庫知識:數據庫在連接中常見錯誤解決方法06-28

    收縮SQL數據庫的方法06-28

    windows下mongodb安裝教程06-28

    戴爾平板電腦連接藍牙耳機的方法07-12

    小米2連接電腦的方法07-10

    MySQL數據庫備份守則和方法04-22

    黄频国产免费高清视频_富二代精品短视频在线_免费一级无码婬片aa_精品9E精品视频在线观看