c#mongodb.driver 连接模式都有哪些

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c#mongodb.driver 连接模式都有哪些相关的知识,希望对你有一定的参考价值。

客户端连接到服务端的3种模式:

1)连接到单实例 .
var client = new MongoClient("mongodb://config.net.cn:27017"); 
2) 连接到mongo集群(多节点)
var client = new MongoClient("mongodb://config.net.cn:27017,config.net.cn:27018,config.net.cn:27019");
3)连接到集群,且支持订阅,更多特性的连接方式

var credentials = MongoCredential.CreateCredential(
databaseName: "BookAds",username: "账号",password: "密码"
);
var mongoClient = new MongoClient(new MongoClientSettings()

Server = new MongoServerAddress("mongodb://config.net.cn", 27022),
Credential = credentials,
ConnectionMode = ConnectionMode.Standalone,
ServerSelectionTimeout = TimeSpan.FromSeconds(15),
ClusterConfigurator = builder =>

builder.Subscribe(new SingleEventSubscriber<CommandStartedEvent>(CmdStartHandlerForFindCommand));//开始执行时的回调
builder.Subscribe(new SingleEventSubscriber<CommandSucceededEvent>(CmdSuccessHandlerForFindCommand));//执行成功后的回调

);

参考自 config.net.cn

参考技术A 在MongoDB中,文档是对数据的抽象,它被使用在Client端和Server端的交互中。所有的Client端(各种语言的Driver)都会使用这种抽象,它的表现形式就是我们常说的BSON(BinaryJSON)。BSON是一个轻量级的二进制数据格式。MongoDB能够使用BSON,并将BSON作为数据的存储存放在磁盘中。当Client端要将写入文档,使用查询等等操作时,需要将文档编码为BSON格式,然后再发送给Server端。同样,Server端的返回结果也是编码为BSON格式再放回给Client端的。本回答被提问者采纳

C# .Net + MongoDB Atlas 连接字符串 MongoDB.Driver.Legacy 尝试运行客户端时出错

【中文标题】C# .Net + MongoDB Atlas 连接字符串 MongoDB.Driver.Legacy 尝试运行客户端时出错【英文标题】:C# .Net + MongoDB Atlas connection string MongoDB.Driver.Legacy error when trying to run Client 【发布时间】:2022-01-10 13:16:23 【问题描述】:

我在 MongoDB Atlas 数据库中设置了集群 + 集合。 我正在尝试按照以下教程进行操作: Bookstore | Using ASP.NET Core 5.0 and MongoDB

我的代码如下,当然换成真实数据:

var client = new MongoClient("mongodb+srv://<username>:<password>@<clustername>.ck3ra.mongodb.net/<database>?retryWrites=true&w=majority");
var database = client.GetDatabase("<database>");
var collection = database.GetCollection<BsonDocument>("validation");
ShowMessage(collection.ToString());

我得到的错误是:

System.IO.FileLoadException:无法加载文件或程序集“MongoDB.Driver.Legacy”或其依赖项之一。一个论点超出了它的法律范围。 (来自 HRESULT 的异常:0x80131502) 文件名:'MongoDB.Driver.Legacy' ---> System.ArgumentOutOfRangeException:长度不能小于零。 参数名称:长度

我不确定这里出了什么问题,因为我完全按照 MongoDB 网站上的 Connect 说明以及其他教程编写连接字符串...

不胜感激。 谢谢。

【问题讨论】:

你的项目中添加了mongocsharpdriver packge了吗? 您上面的代码没有使用旧版驱动程序,看起来您这边有一些不同的问题。创建一个简单的控制台应用程序并在那里检查此行为。我认为它可以正常工作,然后检查与主应用程序的区别 【参考方案1】:

您需要确保已将 mongocsharpdrive 包添加到您的包及其依赖项中。 由于您的目标是 .net5,因此请考虑 .net 标准 2.0 依赖项。

【讨论】:

谢谢!我已经通过 NuGet 包添加了它,但我似乎没有做出任何改变......任何方式来测试我是否正确完成......? @YafimSimanovsky 您是否添加了我的答案中给定链接中提到的依赖项? 是的,如果这就是您的意思,它会出现在项目的 packages.config 文件中。我不想通过 CLI 手动安装它,因为该项目是为外部用户编译的,我不确定他们将如何在不手动安装的情况下使用它,所以我必须将它作为一些包包含在项目编译中进程(例如 NuGet)。 “考虑 .net 标准 2.0 依赖项”到底是什么意思?也许我错过了一些文件,因为我仍然无法解决问题......

以上是关于c#mongodb.driver 连接模式都有哪些的主要内容,如果未能解决你的问题,请参考以下文章

通过php的MongoDB driver连接Azure的DocumentDB PaaS

使用mongo-java-driver-3.0.2连接MongoDB数据库

MongoDB使用mongodb driver api连接mongo并增删改查(mongodb module)

MongoDB使用mongodb driver api连接mongo并增删改查(mongodb module)

简述软件开发中B/S模式和C/S模式的原理,相比较而言B/S都有哪些优点?

MongoDB C# Driver 快速入门