NET連接MongoDB數據庫實(shí)例方法

時(shí)間:2022-06-27 09:14:38 數據庫操作系統 我要投稿
  • 相關(guān)推薦

NET連接MongoDB數據庫實(shí)例方法

  使用代碼

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

  Mongo數據庫

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

  Mongo數據庫的特性

  Ad hoc 查詢(xún)

  1 標引

  2 復制

  3負載均衡

  4 文件存貯

  5 聚合

  6 服務(wù)器端 JavaScript 執行

  7 定容集合

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

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

  現在數據庫已經(jīng)啟動(dòng),并正在運行。

  創(chuàng )建一個(gè).NET應用

  創(chuàng )建一個(gè).NET web/Windows應用。在這個(gè)示例中,我們將用一個(gè)簡(jiǎn)單的員工表。

  開(kāi)始之前,我們需要確保系統中裝有MongoDB的.NET驅動(dòng)。你可以按下面的步驟來(lái)為一個(gè)指定的項目安裝驅動(dòng)。

  打開(kāi)Visual Studio的包管理器:

  打開(kāi)包管理器控制臺后,用戶(hù)可以執行下面的命令:

  復制代碼 代碼如下:

  Install-Package mongocsharpdriver

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

  復制代碼 代碼如下:

  using MongoDB.Bson;

  using MongoDB.Driver;

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

  using MongoDB.Driver.Builders;

  using MongoDB.Driver.GridFS;

  using MongoDB.Driver.Linq;

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

  復制代碼 代碼如下:

  MongoServer _server;

  MongoDatabase _database;

  用下面的命令連接至數據庫。在這里,數據庫服務(wù)器是在本地主機上運行的,端口為: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);

  }

  在這里,我們創(chuàng )建了三個(gè)使用不同屬性集合的類(lèi)。我們可以設置這些類(lèi)的屬性,并將數據保存至同一個(gè)數據庫、同一個(gè)表。這是無(wú)模式數據庫的真正優(yōu)勢:插入數據時(shí)不檢查模式。保存不同的記錄時(shí)可以用不同的域的集合,而其它的域 將 默認被視為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數據庫實(shí)例方法】相關(guān)文章:

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

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

電路的連接方法07-03

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

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

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

windows下mongodb安裝教程06-28

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

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

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

99久久精品免费看国产一区二区三区|baoyu135国产精品t|40分钟97精品国产最大网站|久久综合丝袜日本网|欧美videosdesexo肥婆