在C#中使用MongoDB数据库

 更新时间:2022年06月08日 10:31:55   作者:springsnow  
这篇文章介绍了在C#中使用MongoDB数据库的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

一、添加MongoDB引用

想要在C#中使用MongoDB,首先安装支持MongoDB的C#版的驱动。

利用MongoDB官方发布的C#驱动,可通过网络下载或nuget安装,得到MongoDB相关的dll,添加到项目中引用。

https://docs.mongodb.com/drivers/csharp/

通过NuGet方式添加

第一步:在项目中右键,选择管理NuGet管理包

第二步:搜索MongoDB,选择MongoDB.Driver添加,我这里已经添加过了所以没有添加按钮

通过这两步,会在项目中自动添加MongoDB.Bson(序列化、Json相关)、MongoDB.Driver(驱动程序)、MongoDB.Driver.Core等引用

二、使用方法

1、连接数据库

在连接数据库之前,请确保MongoDB数据库服务已经启动。

using MongoDB.Bson;
using MongoDB.Driver;

//1.连接字符串(mongodb数据库默认端口为:27017)
string connStr = "mongodb://127.0.0.1:27017";

//2.创建连接MongoClient实例实际上代表了一个到数据库的连接池,即使有多个线程,也只需要一个MongoClient类的实例
var client = new MongoClient(connStr);

//3.使用client的GetDatabase方法获取数据库,即使该数据库不存在,也会自动创建;
IMongoDatabase db = client.GetDatabase("test");

2、操作数据

三个对象, client是连接数据库的客户端, database对应库, collection是对象集合。对对象的操作是针对collection集合。

//4.获取数据集 collection;BsonDocument是在数据没有预先定义好的情况下使用的。
IMongoCollection<BsonDocument> collection = db.GetCollection<BsonDocument>("runoob1");

//5.插入一条数据;
var document = new BsonDocument { { "id", 2 }, { "name", "aa" } };
collection.InsertOne(document);


//6.查询数据1
var res = collection.Find(new BsonDocument()).ToList(); //查询整个数据集
foreach (var item in res)
{
    Console.WriteLine(item);
}
//6.查询数据2
var res_a = collection.Find(new BsonDocument()).FirstOrDefault(); //查询当前数据集的第一条数据,没有则返回null
Console.WriteLine(res_a);


//6.升序降序查询3:
var sort_ascending = Builders<BsonDocument>.Sort.Ascending("id"); //根据id升序
var sort_descending = Builders<BsonDocument>.Sort.Descending("id"); //根据id降序
var res_c = collection.Find(Builders<BsonDocument>.Filter.Lt("id", 10) & Builders<BsonDocument>.Filter.Gte("id", 2)).Limit(50).Sort(sort_ascending).ToCursor(); //查询id小于10,大于2的数据
foreach (var item in res_c.ToEnumerable())
{
    Console.WriteLine(item);
}

//7.更新数据,更新支持添加新的field, 如:
collection.UpdateMany(Builders<BsonDocument>.Filter.Eq("id", 2), Builders<BsonDocument>.Update.Set("name", "hello"));   //将id字段为2的名字都改为“hello”;

//8.删除
collection.DeleteMany(Builders<BsonDocument>.Filter.Eq("id", 2));

mongodb对程序员是极友好的, 可以动态变化的结构, 让程序员不再害怕频繁变动的需求。

到此这篇关于C#使用MongoDB的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • C#实现图片缩略图功能的示例详解

    C#实现图片缩略图功能的示例详解

    这篇文章主要为大家详细介绍了如何利用C#实现图片缩略图的功能,文中的示例代码讲解详细,对我们学习C#有一定的帮助,感兴趣的小伙伴可以跟随小编一起了解一下
    2022-12-12
  • 浅谈c# 面向对象之类与对象

    浅谈c# 面向对象之类与对象

    这篇文章主要介绍了c# 面向对象的类与对象的相关知识,非常的浅显易懂,有需要的小伙伴参考下。
    2014-12-12
  • C#如何将DLL打包到程序中

    C#如何将DLL打包到程序中

    这篇文章主要介绍了C#如何将DLL打包到程序中问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-01-01
  • C#实现猜数字小游戏

    C#实现猜数字小游戏

    这篇文章主要为大家详细介绍了C#实现猜数字小游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-03-03
  • NPOI实现两级分组合并功能(示例讲解)

    NPOI实现两级分组合并功能(示例讲解)

    下面小编就为大家分享一篇NPOI实现两级分组合并功能的示例讲解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2017-12-12
  • c# 如何实现web打印插件

    c# 如何实现web打印插件

    本文的实现思路主要是Web端通过WebSocket将Html发送给客户端,客户端(Winform)监听消息,接收处理后再打印,有该需求的朋友可以参考下本文
    2021-06-06
  • C# 6.0 新特性汇总

    C# 6.0 新特性汇总

    这篇文章主要介绍了C# 6.0 新特性汇总的相关资料,本文给大家带来了11种新特征,非常不错,感兴趣的朋友一起看看吧
    2016-09-09
  • Unity InputFiled TMP属性和各种监听示例详解

    Unity InputFiled TMP属性和各种监听示例详解

    这篇文章主要为大家介绍了Unity InputFiled TMP属性和各种监听示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-01-01
  • C#中的multipart/form-data提交文件和参数

    C#中的multipart/form-data提交文件和参数

    这篇文章主要介绍了C#中的multipart/form-data提交文件和参数,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-06-06
  • C#-WinForm跨线程修改UI界面的示例

    C#-WinForm跨线程修改UI界面的示例

    这篇文章主要介绍了C#-WinForm跨线程修改UI界面的示例,帮助大家更好的理解和使用c#,感兴趣的朋友可以了解下
    2021-01-01

最新评论