教程:如何在.NET中使用MongoDB以及基本的CRUD操作

MongoDB

NoSQL是一种面向文档的数据库系统,以特定的格式储存,如JSON。MongoDB是当前NoSQ数据库产品中最热门的一种,它具高性能、易部署、易使用的特点,以及丰富的轻量级二进制格式。 MongoDB最大的特点是支持的查询语言非常强大,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引,是一个面向集合的,模式自由的文档型数据库。

本文将详细介绍MongoDB的安装、.NET应用程序中的MongoDB(C#代码)的使用以及演示基本的CRUD操作

MongoDB的优点

  • 方便储存大量结构简单的数据

  •  速度快,适用于大而复杂的数据环境

  • 在云上有很高的灵活性和可用性

  • 很容易扩展

  • 使用MongoDB的动态模式,可以实现快速开发

MongoDB不会将数据保存在行中,所有数据都储存在单个文档中。从程序员的角度看,MongoDB可以处理纯JSON文件。详见如下MongoDB文档示例:

{
   "employeeid" : ObjectId("R8rGt541b1ad7d0c4rcfgt7549"),
   "employeename" : "Tapas Pal",
   "department" : "IT",
   "numberOfArticles" : 50,
   "Address" : [
      "street" : "Some Street",
      "city" : "Kolkata",
      "country" : "India"
   ],
   "companyname" : "XYZ",
   "skills" : [".NET", "JavaScript", "NoSQL", "Node.js", "HTML"]
}

获取MongoDB

MongoDB 是一个免费的开源数据库,你可以从特定的链接去下载。MongoDB还提供了一个很大的驱动程序列表,方便不同编程语言与数据库之间的通信。如果要与.NET一起使用,则需要从NuGet包安装驱动程序。NET驱动程序包括MongoDB.Bson,MongoDB.Driver和MongoDB.Driver.Core。

.NET项目

现在,让我们创建一个.NET控制台应用程序来演示MongoDB上的CRUD操作。在运行mongod.exe是要确保提示命令显示一切正常,以便在执行控制台应用程序时保持MongoDB服务器正常运行。

步骤1

打开Visual Studio并创建一个C#控制台应用程序项目。将其命名为MongoDBConsoleApp。

图1:新的控制台应用程序

步骤2

安装MongoDB.NET驱动程序。单机右键解决方案,进入“Manage NuGet Packages.”, 然后在搜索栏中,输入“MongoDB”显示出安装包,进行安装。详见下图:

图2:“Manage NuGet Packages”链接

图3:包管理器输出

步骤3

在Program.cs文件中添加以下命名空间,该名称空间用于连接MongoDB和CRUD操作。

using MongoDB.Driver;
using MongoDB.Bson;

步骤4

接下来,编写代码到CRUD操作。此示例中,将使用BsonDocument类对象将数据存储在MongoDB数据库中。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using MongoDB.Driver;
using MongoDB.Bson;
namespace MongoDBConsoleApp
{
   class Program
   {
      static void Main(string[] args)
      {
         try
         {
            MongoClient MongodbClient = new
               MongoClient("mongodb://127.0.0.1:27017");
            // Get Database and Collection
            IMongoDatabase Mongodb =
               MongodbClient.GetDatabase("MyDatabase");
            var MongodbcollList =
               Mongodb.ListCollections().ToList();
            Console.WriteLine("The MongoDB list of collections
               are :");
            foreach (var item in MongodbcollList)
            {
               Console.WriteLine(item);
            }
            var mydocument = Mongodb.GetCollection
               <BsonDocument>("mydocument");
 
            create(Mongodb, mydocument);
            update(Mongodb, mydocument);
            delete(Mongodb, mydocument);
 
            var myresultDoc = mydocument.Find(new
               BsonDocument()).ToList();
            foreach (var myitem in myresultDoc)
            {
               Console.WriteLine(myitem.ToString());
            }
         }
         catch (Exception ex)
         {
            Console.WriteLine(ex.Message);
         }
 
         Console.ReadLine();
      }
 
      static void create(IMongoDatabase Mongodb, var mydocument)
      {
 
         BsonElement employeename = new BsonElement("employeename",
            "Tapas Pal");
         BsonDocument empployee = new BsonDocument();
         empployee.Add(employeename);
         empployee.Add(new BsonElement("employeenumber", 123));
         mydocument.InsertOne(empployee);
 
      }
 
      static void update(IMongoDatabase Mongodb, var mydocument)
      {
         // UPDATE
         BsonElement updateemployee = new
            BsonElement("employeename", "Tapas1 Pal1");
 
         BsonDocument updateemployeedoc = new BsonDocument();
         updateemployeedoc.Add(updateemployee);
         updateemployeedoc.Add(new BsonElement("employeenumber",
            1234));
 
         BsonDocument findemployeeDoc = new BsonDocument(new
            BsonElement("employeename", "Tapas Pal"));
 
         var updateDoc = mydocument.FindOneAndReplace
            (findemployeeDoc, updateemployeedoc);
 
         Console.WriteLine(updateDoc);
 
      }
      static void delete(IMongoDatabase Mongodb, var mydocument)
      {
         // DELETE
         BsonDocument findAnotheremployee = new BsonDocument(new
            BsonElement("employeename", "Tapas1 Pal1"));
 
         mydocument.FindOneAndDelete(findAnotheremployee);
      }
   }
}

在前面的代码方法中,作者检索了当前的数据库集合,然后创建了一个BsonDocument对象,用于存储员工数据。

在create方法中,作者展示了如何创建一个BsonElement对象变量来存储员工对象关键值,然后将该对象添加到BsonDocument中。

在update方法中,作者直接将对象作为参数传递,并且找到了员工名称来更新详细信息。

在 delete方法中,作者删除了之前创建的员工。

最后,显示整个列表。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/31542119/viewspace-2158330/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/31542119/viewspace-2158330/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值