目录
标准连接字符串格式
内部认证
链接原理:
认识:
首页 数据库 mysql教程 MongodbConnectionString

MongodbConnectionString

Jun 07, 2016 pm 03:54 PM
文档

本文档描述定义的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进行参数设置。

默认情况下,最大链接池是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 
登录后复制

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

配置文件中的信息

<addkey="connectionPool" value="1000"/><!--连接池设置-->

    <add key="hostname"value="192.168.24.249"/>

    <add key="port"value="27017"/>

    <add key="database"value="DB3"/>

    <add key="minpool"value="300"/>

  </appSettings>
登录后复制

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

#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的设置,但是又不同,需要进行代码设置,这是这个代码的参数可以写在配置文件中。这次的资料查找我深刻认识到,英语是非常非常重要的工具,如果你想更深入的了解,英语是必不可少的利器。

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
2 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
2 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
3 周前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

内存或磁盘空间不足,无法重新分页或打印此文档Word错误 内存或磁盘空间不足,无法重新分页或打印此文档Word错误 Feb 19, 2024 pm 07:15 PM

本文将介绍如何解决在MicrosoftWord中出现的内存或磁盘空间不足以重新分页或打印文档的问题。这种错误通常会在用户尝试打印Word文档时出现。如果您遇到类似的错误,请参考本文提供的建议进行解决。内存或磁盘空间不足,无法重新分页或打印此文档Word错误解决MicrosoftWord打印错误“没有足够内存或磁盘空间重新分页或打印文档”的方法。更新MicrosoftOffice关闭占用内存的应用程序更改您的默认打印机在安全模式下启动Word重命名NorMal.dotm文件将Word文件保存为另一

如何对Word文档加红线 如何对Word文档加红线 Mar 01, 2024 am 09:40 AM

它是395个字,就是495个这篇文章将向您介绍如何在Word文档中添加红线。在文档中添加红线是指对文档进行修改,以便用户可以清楚地查看所做的更改。这项功能在多人共同编辑一个文档时非常重要。redline是什么意思标记文档加红线是指使用红线或标注来指示对文档的更改、编辑或修订。这个术语的灵感来源于使用红色笔在打印文档上做标记的做法。红线批注被广泛应用在不同场景下,如:在编辑文档时为作者、编辑和审阅人清楚地显示建议的更改。在法律协议或合同中提出变更和修改对论文、演讲等提出建设性的批评和建议。如何给W

无法打开word文档中的超链接 无法打开word文档中的超链接 Feb 18, 2024 pm 06:10 PM

近年来,随着网络技术的不断发展,我们的生活中离不开各种数字工具和互联网。在处理文档时,特别是在写作中,我们经常会使用到word文档。然而,有时我们可能会遇到一个棘手的问题,那就是word文档中的超链接无法打开。下面将就这个问题进行一番探讨。首先,我们需要明确的是,超链接是指在word文档中添加的指向其他文档、网页、目录、书签等的链接。当我们点击这些链接时,我

Word文档在Windows 11/10上打开时为空白 Word文档在Windows 11/10上打开时为空白 Mar 11, 2024 am 09:34 AM

当您在Windows11/10计算机上打开Word文档时遇到空白页面的问题,可能需要进行修复以解决此状况。造成这一问题的根源多种多样,其中最普遍的原因之一是文档本身损坏。此外,Office文件的损坏也可能导致类似的情况。因此,本文提供的修复方法可能会对您有所帮助。您可以尝试使用一些工具来修复损坏的Word文档,或者尝试将文档转换为其他格式再重新打开。另外,检查系统中的Office软件是否需要更新也是解决此问题的一种方法。通过这些简单的步骤,您可能能够解决Word文档空白打开的Word文档在Win

学习Go语言文档中的os.Stdout.Write函数实现标准输出 学习Go语言文档中的os.Stdout.Write函数实现标准输出 Nov 03, 2023 pm 03:48 PM

学习Go语言文档中的os.Stdout.Write函数实现标准输出在Go语言中,标准输出是通过os.Stdout来实现的。os.Stdout是一个*os.File类型的变量,它代表了标准输出设备。为了将内容输出到标准输出,可以使用os.Stdout.Write函数。本文将介绍如何使用os.Stdout.Write函数实现标准输出,并提供具体的代码示例。os.

Java文档解读:StringBuilder类的substring()方法详细介绍 Java文档解读:StringBuilder类的substring()方法详细介绍 Nov 03, 2023 pm 04:31 PM

Java文档解读:StringBuilder类的substring()方法详细介绍引言:在Java编程中,字符串的处理是非常常见的操作之一。而Java提供了一系列关于字符串处理的类和方法,其中StringBuilder类是常用于频繁字符串操作的选择。在StringBuilder类中,substring()方法是一个非常有用的方法,用于截取字符串的子串。本文将

如何实现Workerman文档的基本使用方法 如何实现Workerman文档的基本使用方法 Nov 08, 2023 am 11:46 AM

如何实现Workerman文档的基本使用方法简介:Workerman是一个高性能的PHP开发框架,它可以帮助开发者轻松构建高并发的网络应用程序。本文将介绍Workerman的基本使用方法,包括安装和配置、创建服务和监听端口、处理客户端请求等。并给出相应的代码示例。一、安装和配置Workerman在命令行中输入以下命令来安装Workerman:c

PHP如何对接淘宝商品搜索API文档 PHP如何对接淘宝商品搜索API文档 Jul 01, 2023 pm 10:16 PM

PHP如何对接淘宝商品搜索API文档淘宝是中国最大的电子商务平台之一,拥有庞大的商品库存和用户群体。对于开发者来说,通过对接淘宝的API接口,可以获取商品信息、推广活动以及进行交易等功能,从而实现个性化的商业应用。本文将介绍如何使用PHP语言对接淘宝商品搜索API,帮助开发者快速构建自己的电商应用。第一步:注册成为淘宝开发者在开始之前,需要先注册成为淘宝开发

See all articles