源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

.NET连接MongoDB数据库实例教程

  • 时间:2021-06-28 02:03 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:.NET连接MongoDB数据库实例教程
[b][img]http://files.jb51.net/file_images/article/201311/20131128090200.jpg?201310289166[/img] 使用代码 [/b]让我们从Mongo数据库的一些细节和基本命令开始,并最终介绍如何创建一个可连接至Mongo数据库的.NET Windows应用。 [b]Mongo数据库 [/b]MongoDB 是一个跨平台、文档导向的数据库系统,它被归类为“NoSQL”数据库。MongoDB避开了传统的基于表的关系数据库结构,而是使用了带动态模式的类JSON文档。MongoDB将这种格式称为BSON(二进制JSON)。这种动态模式使得特定类型应用中的数据整合更简单、更快速。MongoDB是自由且开源的软件。 [b]Mongo数据库的特性 [/b]Ad hoc 查询 1 标引 2 复制 3 负载均衡 4 文件存贮 5 聚合 6 服务器端 JavaScript 执行 7 定容集合 用户可从 此处 下载Mongo数据库,然后将其中内容解压至任一文件夹。 文件下载完成后,用户需要配置MongoDB的数据文件夹。做法是在“C:\Data”文件夹下创建一个名为“DB”的文件夹。 [img]http://files.jb51.net/file_images/article/201311/20131128085811.jpg?201310289719[/img] 数据文件夹创建好以后,可以通过用命令行提示符在“bin”文件夹下运行“mongod.exe”来启动Mongo数据库。 [img]http://files.jb51.net/file_images/article/201311/20131128085831.jpg?2013102891439[/img] 现在数据库已经启动,并正在运行。 创建一个.NET应用 创建一个.NET web/Windows应用。在这个示例中,我们将用一个简单的员工表。 开始之前,我们需要确保系统中装有MongoDB的.NET驱动。你可以按下面的步骤来为一个指定的项目安装驱动。 打开Visual Studio的包管理器: [img]http://files.jb51.net/file_images/article/201311/20131128085856.jpg?201310289158[/img] 打开包管理器控制台后,用户可以执行下面的命令:
[u]复制代码[/u] 代码如下:
Install-Package mongocsharpdriver
在项目中添加对下列命名空间的引用:
[u]复制代码[/u] 代码如下:
using MongoDB.Bson; using MongoDB.Driver; //此外,你将频繁的用到下面这些 using 语句中的一条或多条: using MongoDB.Driver.Builders; using MongoDB.Driver.GridFS; using MongoDB.Driver.Linq;
[img]http://files.jb51.net/file_images/article/201311/20131128085930.jpg?2013102891544[/img] 声明数据库服务器和数据库的变量:
[u]复制代码[/u] 代码如下:
MongoServer _server; MongoDatabase _database;
用下面的命令连接至数据库。在这里,数据库服务器是在本地主机上运行的,端口为:27017,数据库名为“ anoop”。
[u]复制代码[/u] 代码如下:
private void Form1_Load(object sender, EventArgs e) {     string connection = "mongodb://localhost:27017";     _server = MongoServer.Create(connection);     _database = _server.GetDatabase("anoop", SafeMode.True); }
在这里,我们创建了三个使用不同属性集合的类。我们可以设置这些类的属性,并将数据保存至同一个数据库、同一个表。这是无模式数据库的真正优势:插入数据时不检查模式。保存不同的记录时可以用不同的域的集合,而其它的域 将 默认被视为NULL。
[u]复制代码[/u] 代码如下:
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");  }
[u]复制代码[/u] 代码如下:
///下面的代码帮助你从Mongo数据库中查找一条现有记录。 _collection = _database.GetCollection<users1 />("users"); IMongoQuery query = Query.EQ("Name", "Anoop"); Users1 _user = _collection.FindAs<users1 />(query).FirstOrDefault(); MessageBox.Show(_user.Age.ToString());
[u]复制代码[/u] 代码如下:
///下面的代码帮助你更新Mongo数据库中的一条现有记录。 _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());
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部