0

0

MongodbConnectionString

php中文网

php中文网

发布时间:2016-06-07 15:54:16

|

1751人浏览过

|

来源于php中文网

原创

本文档描述定义的uri格式之间,以及应用程序和mongodb实例的连接,参考官方mongodb的驱动。 原文 :http://docs.mongodb.org/manual/reference/connection-string/#connections-connection-options 标准连接字符串格式 本节描述的标准格式连接MongoDBURI用于

本文档描述定义的uri格式之间,以及应用程序和mongodb实例的连接,参考官方mongodb的驱动。

原文 :http://docs.mongodb.org/manual/reference/connection-string/#connections-connection-options

标准连接字符串格式

本节描述的标准格式连接MongoDBURI用于连接MongoDB数据库服务器。所有官方MongoDB的格式都是相同的驱动程序。对于驱动和驱动的链接文档的列表,看到MongoDB驱动和客户端库(MongoDB Drivers and Client Libraries)

以下是标准的链接方式

mongodb://[username:password@]host1[:port1][,host2[:port2],...[,hostN[:portN]]][/[database][?options]]

参数说明:

mongodb://字符串链接的标准格式 username:password@ 可选的,一般默认是没有名称和密码的,只有在MongoDB服务器使用了身份验证时才出现。 /database 可选的,如果链接的字符串中包含了验证身份的用户名和密码,则数据库是必须要有的。若没有包含数据库名称,默认是链接admin的数据库 ?options 链接特定选项。如果没有指定链接特定的数据库名称,必须在主机名后面加"/",并且在optin的前面以问号形式开头"?". 实例: mongodb://db1.example.net,db2.example.net:2500/?replicaSet=test

继续查找发现了另一篇文章。只做重点翻译:

内部认证

当你只需要一个用户,它在连接字符串中指定这是可能的。

var connectionString ="mongodb://user1:password1@localhost/test";
var mongoClient = newMongoClient(connectionString);
 
注意: 如果你不指定一个数据库连接字符串,默认的数据库是“admin”数据库.

看到这里心里狂喜,终于可以进行配置文件的设置了,但是发现c#的驱动并不支持这样的编写,于是又是一个失落。

链接原理:

链接数据库,官方提供了两种线程安全的方式,一个是MongoClient, 另一个是MongoServer,都是线程安全的,自动进行锁定的。

利用服务端类链接数据库

// Create server settings to passconnection string, timeout, etc.
MongoServerSettingssettings =newMongoServerSettings();
settings.Server = new MongoServerAddress("localhost",27017);
// Create server object tocommunicate with our server
MongoServer server = new MongoServer(settings);
// Get our databaseinstance to reach collections and data
var database = server.GetDatabase("MessageDB");

客户端类链接数据库的实例

var client = new MongoClient("mongodb://localhost:27017");
var server = client.GetServer();
var database = server.GetDatabase("foo");
var collection = database.GetCollection("bar");

以上的两种链接方式我都做个测试。并且都可以用。这是一般更倾向于客户端的链接方式。

通过查找Api,发现客户端的类的构造方法还有其他的

  public MongoClient();
        public MongoClient(MongoClientSettingssettings);
        public MongoClient(MongoUrl url);
        public MongoClient(stringconnectionString);

我们通常用的是string字符串的链接,这次对MongoClientSettings进行的深度的查找调用发MongoClientSettings 是可以进行更多的参数设置的,和Option类似,于是找到了解决方案,通过配置文件对MongoClientSettings进行参数设置。

Pixlr
Pixlr

Pixlr是一款2008年推出的在线图片编辑和AI图片处理工具,目前已推出AI 图像生成器、AI 生成填充、AI 删除背景、AI 删除对象和 AI 图像扩展等现代 AI 工具。

下载

默认情况下,最大链接池是100,最小是0,数据库链接是本地的。下面我们看测试

MongoClientSettings settingsclient = newMongoClientSettings();//实例化客户端设置类

\

 红色划线部分是默认的参数,当我们不填写任何参数,驱动程序是进行默认的参数设置的。

通过客户端类的参数设置可以发现已经有所不同了。

\

那代码是如何编写的呢

#region 读取配置文件信息

            //获取链接池大小

            int connectionPool =Convert.ToInt32(ConfigurationManager.AppSettings["connectionPool"]);

            int minpool =Convert.ToInt32(ConfigurationManager.AppSettings["minpool"]);

            string hostname =ConfigurationManager.AppSettings["hostname"];

            Int32 port =Convert.ToInt32(ConfigurationManager.AppSettings["port"]);

            string database =ConfigurationManager.AppSettings["database"];
 
            #endregion
 
 if (String.IsNullOrEmpty(ConnectionString))

            {

                throw newArgumentNullException("Connection string not found.");

            }

   #region 客户端类设置

            MongoServerAddress ipaddress = newMongoServerAddress(hostname, port);//设置服务器的ip和端口

            MongoClientSettings settingsclient= new MongoClientSettings();//实例化客户端设置类

            settingsclient.Server =ipaddress;//端口赋值

           settingsclient.MaxConnectionPoolSize = connectionPool;

           settingsclient.MinConnectionPoolSize = minpool;

            settingsclient.ConnectionMode =0;//链接模式设置

           // MongoUrl url=newMongoUrl(ConnectionString);

            MongoClient client = newMongoClient(settingsclient);//调用客户端类构造函数设置参数

            MongoServer server =client.GetServer();//服务端获取客户端参数

            DB =server.GetDatabase(database);//获取数据库名称

            #endregion 

刚开始我也是不知道如何进行参数赋值,只是在一步步的操作中发现参数是有类型的,一些类型是一些引用类,就需要实例化赋值。所以才有最后看起来很多的参数。

配置文件中的信息



    

    

    

    

  

当然了客户端的方式写出来了。服务端也就容易的很多了

#region 服务端链接设置

            MongoServerSettings mongoSetting =new MongoServerSettings();

            //mongoSetting.Server = newMongoServerAddress(ConnectionString, connectionPool);

            mongoSetting.MaxConnectionPoolSize= connectionPool;//设定最大连接池

            mongoSetting.Server = newMongoServerAddress(hostname, port);

            MongoServer server =MongoServer.Create(mongoSetting);//创建连接数据文件

            DB = server.GetDatabase(database);

            #endregion 

认识:

由于该数据库的参考资料比较少,所以多数资料还是外文,刚开始看到很是惊讶,如此多的英语能看的明白么。但是只要心境平静,一切都是可以的。通过基本的查找和一些外文论坛了解的基本的设置。很像SQL的设置,但是又不同,需要进行代码设置,这是这个代码的参数可以写在配置文件中。这次的资料查找我深刻认识到,英语是非常非常重要的工具,如果你想更深入的了解,英语是必不可少的利器。

相关专题

更多
Word 字间距调整方法汇总
Word 字间距调整方法汇总

本专题整合了Word字间距调整方法,阅读下面的文章了解更详细操作。

2

2025.12.24

任务管理器教程
任务管理器教程

本专题整合了任务管理器相关教程,阅读下面的文章了解更多详细操作。

2

2025.12.24

AppleID格式
AppleID格式

本专题整合了AppleID相关内容,阅读专题下面的文章了解更多详细教程。

0

2025.12.24

csgo视频观看入口合集
csgo视频观看入口合集

本专题整合了csgo观看入口合集,阅读下面的文章了知道更多入口地址。

29

2025.12.24

yandex外贸入口合集
yandex外贸入口合集

本专题汇总了yandex外贸入口地址,阅读下面的文章了解更多内容。

58

2025.12.24

添加脚注通用方法
添加脚注通用方法

本专题整合了添加脚注方法合集,阅读专题下面的文章了解更多内容。

1

2025.12.24

重启电脑教程汇总
重启电脑教程汇总

本专题整合了重启电脑操作教程,阅读下面的文章了解更多详细教程。

3

2025.12.24

纸张尺寸汇总
纸张尺寸汇总

本专题整合了纸张尺寸相关内容,阅读专题下面的文章了解更多内容。

5

2025.12.24

Java Spring Boot 微服务实战
Java Spring Boot 微服务实战

本专题深入讲解 Java Spring Boot 在微服务架构中的应用,内容涵盖服务注册与发现、REST API开发、配置中心、负载均衡、熔断与限流、日志与监控。通过实际项目案例(如电商订单系统),帮助开发者掌握 从单体应用迁移到高可用微服务系统的完整流程与实战能力。

1

2025.12.24

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
CSS3 教程
CSS3 教程

共18课时 | 4万人学习

MongoDB 教程
MongoDB 教程

共17课时 | 1.6万人学习

CSS教程
CSS教程

共754课时 | 16.1万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号