网站地图 |  TAG标签 |  RSS订阅  【设为首页】  【加入收藏
网站首页   学校介绍   专业设置   师资力量   就业保障   青鸟学社   校园生活   学校新闻   招生简章   网上学堂   博客   开班计划
北大青鸟 北大青鸟咨询服务 北大青鸟报名北大青鸟就业保障 北大青鸟专题 北大青鸟高中生专题 北大青鸟中职生专题 北大青鸟大学生专题 北大青鸟待业者题 北大青鸟跳槽转行专题
当前位置: 首 页 > 网上学堂 > 程序开发 >

北大青鸟华腾教育 .NET应用如何连接到MongoDB数据库

来源:未知 编辑:北大青鸟老师 日期:2013-12-11 16:06
这则小窍门将讲述如何开发一个.NET应用来连接Mongo数据库并执行多种操作。同时还稍微涉及了Mongo数据库和多种命令。

引言

这则小窍门将讲述如何开发一个.NET应用来连接Mongo数据库并执行多种操作。同时还稍微涉及了Mongo数据库和多种命令。

使用代码

让我们从Mongo数据库的一些细节和基本命令开始,并最终介绍如何创建一个可连接至Mongo数据库的.NET Windows应用。

Mongo数据库

MongoDB 是 一个跨平台、文档导向的数据库系统,它被归类为“NoSQL”数据库。MongoDB避开了传统的基于表的关系数据库结构,而是使用了带动态模式的类 JSON文档。MongoDB将这种格式称为BSON(二进制JSON)。这种动态模式使得特定类型应用中的数据整合更简单、更快速。MongoDB是自 由且开源的软件。

Mongo数据库的特性

  • Ad hoc 查询
  • 标引
  • 复制
  • 负载均衡
  • 文件存贮
  • 聚合
  • 服务器端 JavaScript 执行
  • 定容集合

用户可从 此处 下载Mongo数据库,然后将其中内容解压至任一文件夹。 文件下载完成后,用户需要配置MongoDB的数据文件夹。做法是在“C:\Data”文件夹下创建一个名为“DB”的文件夹。
Sample Image - maximum width is 600 pixels

数据文件夹创建好以后,可以通过用命令行提示符在“bin”文件夹下运行“mongod.exe”来启动Mongo数据库。

现在数据库已经启动,并正在运行。

创建一个.NET应用

创建一个.NET web/Windows应用。在这个示例中,我们将用一个简单的员工表。

开始之前,我们需要确保系统中装有MongoDB的.NET驱动。你可以按下面的步骤来为一个指定的项目安装驱动。

打开Visual Studio的包管理器:

打开包管理器控制台后,用户可以执行下面的命令:

  1. Install-Package mongocsharpdriver 

 

在项目中添加对下列命名空间的引用:

  1. using MongoDB.Bson; 
  2. using MongoDB.Driver; 
  3. //此外,你将频繁的用到下面这些 using 语句中的一条或多条: 
  4. using MongoDB.Driver.Builders; 
  5. using MongoDB.Driver.GridFS; 
  6. using MongoDB.Driver.Linq; 

声明数据库服务器和数据库的变量:

  1. MongoServer _server; 
  2. MongoDatabase _database; 

用下面的命令连接至数据库。在这里,数据库服务器是在本地主机上运行的,端口为:27017,数据库名为“ anoop”。

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

 

在这里,我们创建了三个使用不同属性集合的类。我们可以设置这些类的属性,并将数据保存至同一个数据库、同一个表。这是无模式数据库的真正优势:插入数据时不检查模式。保存不同的记录时可以用不同的域的集合,而其它的域 默认被视为NULL。

  1. public class Users1 
  2.  { 
  3.      public ObjectId Id { get; set; } 
  4.      public string Name { get; set; } 
  5.      public int Age { get; set; } 
  6.  } 
  7.  public class Users2 
  8.  { 
  9.      public ObjectId Id { get; set; } 
  10.      public string Name { get; set; } 
  11.      public string Location { get; set; } 
  12.  } 
  13.  public class Users3 
  14.  { 
  15.      public ObjectId Id { get; set; } 
  16.      public string Name { get; set; } 
  17.      public int Age { get; set; } 
  18.      public string Location { get; set; } 
  19.  } 
  20.  private void rbEntity1_CheckedChanged(object sender, EventArgs e) 
  21.  { 
  22.      txtName.Enabled = true
  23.      txtAge.Enabled = true
  24.      txtLocation.Enabled = true
  25.  } 
  26.  private void rbEntity2_CheckedChanged(object sender, EventArgs e) 
  27.  { 
  28.      txtName.Enabled = true
  29.      txtAge.Enabled = false
  30.      txtLocation.Enabled = true
  31.  } 
  32.  private void rbEntity3_CheckedChanged(object sender, EventArgs e) 
  33.  { 
  34.      txtName.Enabled = true
  35.      txtAge.Enabled = true
  36.      txtLocation.Enabled = false
  37.  } 
  38.  private void btnSave_Click(object sender, EventArgs e) 
  39.  { 
  40.      if (rbEntity1.Checked) 
  41.      { 
  42.          var _users = _database.GetCollection<users3 />("users"); 
  43.          var user = new Users3 { }; 
  44.          user.Age = Convert.ToInt32(txtAge.Text); 
  45.          user.Name = txtName.Text; 
  46.          user.Location = txtLocation.Text; 
  47.          _users.Insert(user); 
  48.          var id = user.Id; 
  49.      } 
  50.      else if (rbEntity2.Checked) 
  51.      { 
  52.          var _users = _database.GetCollection<users2 />("users"); 
  53.          var user = new Users2 { }; 
  54.          user.Name = txtName.Text; 
  55.          user.Location = txtLocation.Text; 
  56.          _users.Insert(user); 
  57.          var id = user.Id; 
  58.      } 
  59.      else if (rbEntity3.Checked) 
  60.      { 
  61.          var _users = _database.GetCollection<users1 />("users"); 
  62.          var user = new Users1 { }; 
  63.          user.Age = Convert.ToInt32(txtAge.Text); 
  64.          user.Name = txtName.Text; 
  65.          _users.Insert(user); 
  66.          var id = user.Id; 
  67.      } 
  68.      MessageBox.Show("User with name " + txtName.Text + " created"); 
  69.  }
  1. ///下面的代码帮助你从Mongo数据库中查找一条现有记录。 
  2. _collection = _database.GetCollection<users1 />("users"); 
  3. IMongoQuery query = Query.EQ("Name""Anoop"); 
  4. Users1 _user = _collection.FindAs<users1 />(query).FirstOrDefault(); 
  5. MessageBox.Show(_user.Age.ToString());
  1. ///下面的代码帮助你更新Mongo数据库中的一条现有记录。 
  2. _collection = _database.GetCollection<users1 />("users"); 
  3. IMongoQuery query = Query.EQ("Name", "Anoop"); 
  4. Users1 _user = _collection.FindAs<users1 />(query).FirstOrDefault(); 
  5. MessageBox.Show("Age before update :" + _user.Age.ToString()); 
  6. //更新年龄的值 
  7. _user.Age = 30
  8.      
  9. //保存更改             
  10. _collection.Save(_user); 
  11. MessageBox.Show("Age after update :" + _user.Age.ToString()); 

 

温馨提示:如果您对北大青鸟的学费、专业设置、就业推荐有任何疑问,可以点击“在线报名”老师与您联系!

------分隔线----------------------------
  • 复制网址发给好友
  • 收藏本文
若您对这篇文章的内容有疑问或者评论,请在此留言给老师,老师会尽快答复你的。
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
验证码:点击我更换图片
最新留言/评论 浏览更多留言/评论>>
栏目导航
北大青鸟入学咨询服务
    点击咨询 毕业工作分配问题
    点击咨询 毕业学历证书问题
    点击咨询 学费书费杂费问题
    点击申请 免费试听机会
    点击报名 参加技术讲座
课程,学费,就业等资料索取(免费)
       姓 名:
     联系电话:
     qq:
     验证码:
    E-mail:
     
北大青鸟就业明星
    北大青鸟北京华腾校区就业学员 我的选择,我的路
      每个人心中都有梦
    想,尤其在年轻的时
    候。无论这个梦想多么
    的遥不可及,却都寄托
    北大青鸟北京华腾校区就业学员 刘友富,安徽人
      我只有高中学历,
    却能在北京奔驰汽车公
    司上班.感谢北大青鸟
    学校,感谢老师们,祝
北大青鸟免费技术讲座
    讲座日期: 本周六 点击抢座
    讲座时间: 下午1点30分
    讲座地点: 北大青鸟BENET网络工程师校区,第一教室
    主讲老师: 李庆儒老师 , 网络工程师培训金牌讲师
    讲座主题: 我的安全我做主
    讲座内容: 检测、防御、黑客信息,如何过滤不安全的网站,如何防御黑客的进攻。
    咨询电话: 010-82011433
    订座电话: 010-82011432
网友推荐内容