Login
网站首页 > 文章中心 > 其它

.Net Core使用MongoDB的详细教程

作者:小编 更新时间:2023-09-26 18:31:23 浏览量:352人看过

安装 MongoDB

.Net Core使用MongoDB的详细教程-图1

MongoDB 是一款非常流行的 NoSQL 数据库,我们需要先安装 MongoDB 才能使用它.MongoDB 的安装方法请参考其官方文档.

安装 MongoDB C# 驱动

为了能够在 .Net Core 中使用 MongoDB,我们需要使用 MongoDB C# 驱动,可以使用 NuGet 包管理器来安装它.

在 Visual Studio 中,打开 NuGet 程序包管理器,搜索MongoDB.Driver 并安装最新版本.

配置 MongoDB 连接字符串

配置 MongoDB 连接字符串是连接到 MongoDB 数据库的重要步骤.在 .Net Core 中,可以在配置文件 appsettings.json 中配置连接字符串.下面是一个简单的示例:

{
  "ConnectionStrings": {
"DefaultConnection": "mongodb://localhost:27017"
  },

  ...
}

使用 MongoDB

在代码中,首先创建一个 MongoClient 实例来连接到 MongoDB.然后,访问数据库和集合,我们可以使用以下代码示例:

using MongoDB.Driver;

...

// 声明 MongoClient
var client = new MongoClient(Configuration.GetConnectionString("DefaultConnection"));

// 访问数据库
var database = client.GetDatabase("testdb");

// 访问集合
var collection = database.GetCollection("testcollection");

代码中,我们首先声明了一个 MongoClient 实例,使用 appsettings.json 中的连接字符串配置来连接到 MongoDB.然后,我们使用 GetDatabase 方法打开数据库.最后,我们使用 GetCollection 方法获得集合实例,同时指定泛型类型为 BSON 文档对象 BsonDocument.

此外,根据需求可以使用 MongoDB 的其他数据类型,如 POCO 对象来代替 BSON 文档,以提高代码的可读性.

示例代码

示例1:插入文档

using MongoDB.Driver;
using MongoDB.Bson;

...

// 声明 MongoClient
var client = new MongoClient(Configuration.GetConnectionString("DefaultConnection"));

// 访问数据库
var database = client.GetDatabase("testdb");

// 访问集合
var collection = database.GetCollection("testcollection");

// 新插入的文档
var document = new BsonDocument
{
{ "hobby", new BsonArray { "篮球", "游泳" } }
};

// 插入文档
collection.InsertOne(document);

在这个示例中,我们首先声明了一个 MongoClient 实例,使用 appsettings.json 中的连接字符串配置来连接到 MongoDB.然后,我们使用 GetDatabase 方法打开数据库,再使用 GetCollection 方法获得集合实例,也就是 testcollection 集合.我们接着使用 BsonDocument 类型创建了一个文档对象并插入到集合中.

示例2:查询文档

using MongoDB.Driver;
using MongoDB.Bson;

...

// 声明 MongoClient
var client = new MongoClient(Configuration.GetConnectionString("DefaultConnection"));

// 访问数据库
var database = client.GetDatabase("testdb");

// 访问集合
var collection = database.GetCollection("testcollection");

// 查询文档
var filter = Builders.Filter.Eq("name", "张三");
var result = collection.Find(filter).ToList();

// 遍历文档
foreach(var doc in result)
{
Console.WriteLine(doc.ToJson());
}

希望以上内容对你有所帮助.

版权声明:倡导尊重与保护知识产权。未经许可,任何人不得复制、转载、或以其他方式使用本站《原创》内容,违者将追究其法律责任。本站文章内容,部分图片来源于网络,如有侵权,请联系我们修改或者删除处理。

编辑推荐

热门文章