MongoDB的连接字符串

本文导读:MongoDB数据库与传统的关系型数据库相比,它具有操作简单、完全免费、源码公开等特点,这使MongoDB产品广泛应用于各种大型门户网站和专业网站。由于MongoDB连接并不支持HTTP协议,所有你不能直接通过浏览器访问MongoDB,下面详细介绍MongoDB中连接字符串的编写

一、MongoDB连接字符串常用格式

mongodb://[username:[email protected]]host1[:port1][,host2[:port2],…[,hostN[:portN]]][/[database][?options]]

备注:字符串连接不区分大小写,并非所有MongoDB驱动都支持完整的连接字符串,不支持此格式连接字串的驱动会有替代连接方案,具体请参照驱动自身的说明文档,看看如何定义uri标准连接的。

1、参数说明

mongodb:// 这是固定的格式,必须要指定。

? username:[email protected] 可选项,如果设置,在连接数据库服务器之后,驱动都会尝试登陆这个数据库? host1 必须的指定至少一个host

host1 是这个URI唯一要填写的。它指定了要连接服务器的地址。如果要连接复制集,请指定多个主机地址。

? :portX 可选的指定端口,如果不填,默认为27017

? /database 如果指定username:[email protected],连接并验证登陆指定数据库。若不指定,默认打开admin数据库。

? ?options 是连接选项。如果不使用/database,则前面需要加上/。所有连接选项都是键值对name=value,键值对之间通过&或;(分号)隔开

2、options 是连接参数

  • connect=direct|replicaSet

    • direct: 连接方式为单个服务器。如果提供了多个主机地址,建立连接之后,按顺序访问。如果仅仅指定了一个主机,direct是默认值。
    • replicaSet: 就和描述的那样,连接到replica set . 这个主机地址列表,是为了发现replica set。如果连接多个主机replicaSet是默认值。
  • replicaSet=name

    • 验证replica set的名称。 Impliesconnect=replicaSet.
  • slaveOk=true|false

    • true:在connect=direct模式下,驱动会连接第一台机器,即使这台服务器不是主。在connect=replicaSet模式下,驱动会发送所有的写请求到主并且把读取操作分布在其他从服务器。
    • false: 在 connect=direct模式下,驱动会自动找寻主服务器. 在connect=replicaSet 模式下,驱动仅仅连接主服务器,并且所有的读写命令都连接到主服务器。
  • safe=true|false

    • true: 在执行更新操作之后,驱动都会发送getLastError命令来确保更新成功。(还要参考wtimeoutMS).
    • false: 在每次更新之后,驱动不会发送getLastError来确保更新成功。
  • w=n

    • 驱动添加 { w : n } 到getLastError命令. 应用于safe=true。
  • wtimeoutMS=ms

    • 驱动添加 { wtimeout : ms } 到 getlasterror 命令. 应用于 safe=true.
  • fsync=true|false

    • true: 驱动添加 { fsync : true } 到 getlasterror 命令.应用于 safe=true.
    • false: 驱动不会添加到getLastError命令中。.
  • maxPoolSize=n
  • minPoolSize=n
    • 一些驱动会把没用的连接关闭。 然而,如果连接数低于minPoolSize值之下, 它们不会关闭空闲的连接。注意的是连接会按照需要进行创建,因此当连接池被许多连接预填充的时候,minPoolSize不会生效。
  • waitQueueTimeoutMS=ms

    • 在超时之前,线程等待连接生效的总时间。如果连接池到达最大并且所有的连接都在使用,这个参数就生效了。
  • waitQueueMultiple=n

    • 驱动强行限制线程同时等待连接的个数。 这个限制了连接池的倍数。
  • connectTimeoutMS=ms

    • 可以打开连接的时间。
  • socketTimeoutMS=ms

    • 发送和接受sockets的时间

 

二、MongoDB的连接字符串实例

1、连接本地数据库服务器,端口是默认的。

mongodb://localhost

2、使用用户名fred,密码foobar登录localhost的admin数据库。

mongodb://fred:[email protected]

3、使用用户名fred,密码foobar登录localhost的baz数据库

mongodb://fred:[email protected]/baz

4、连接 replica pair, 服务器1为example1.com服务器2为example2

mongodb://example1.com:27017,example2.com:27017

5、连接 replica set 三台服务器 (端口 27017, 27018, 和27019)

mongodb://localhost,localhost:27018,localhost:27019

6、连接 replica set 三台服务器, 写入操作应用在主服务器 并且分布查询到从服务器

mongodb://host1,host2,host3/?slaveOk=true

7、直接连接第一个服务器,无论是replica set一部分或者主服务器或者从服务器

mongodb://host1,host2,host3/?connect=direct;slaveOk=true

8、当你的连接服务器有优先级,还需要列出所有服务器,你可以使用上述连接方式

安全模式连接到localhost:

mongodb://localhost/?safe=true

9、以安全模式连接到replica set,并且等待至少两个复制服务器成功写入,超时时间设置为2秒

mongodb://host1,host2,host3/?safe=true;w=2;wtimeoutMS=2000

注:原文地址http://www.studyofnet.com/news/337.html

时间: 2024-10-12 23:13:05

MongoDB的连接字符串的相关文章

通过udl文件得到连接字符串

1.新建一个文件,文件名任意,扩展名为udl 2.双击打开这个udl文件 3.点下一步: 4.测试连接成功后点击确定 5.用记事本打开这个udl文件: 连接字符串就出来了

自己如何正确获取MYSQL的ADO连接字符串

1.下载安装MYSQL的ODBC数据库驱动程序(mysql-connector-odbc-5.3.4-win32.msi或者mysql-connector-odbc-5.3.4-winx64.msi)下载地址:http://dev.mysql.com/downloads/connector/odbc/ 2.在桌面上新建一个空的文本文件mysql.txt,重命名为mysql.udl: 3.双击这个mysql.udl文件,打开“数据库连接属性”对话框,在“提供程序”页选择”Micrsoft Ole

如何正确获得mysql,access的ADO连接字符串,并使用该连接字符串连接数据库

如何正确获得mysql的ADO连接字符串,摘自网页http://blog.csdn.net/zyq5945/article/details/5486393 首先你正确安装了MYSQL的数据库驱动程序(mysql-connector-odbc-5.1.6-win32.msi ) 1.在桌面上新建一个空的文本文件mysql.txt,重命名为mysql.udl: 2.双击这个mysql.udl文件,打开“数据库连接属性”对话框,在“提供程序”页选择”Micrsoft Ole DB Provider f

win7 64 VC++ ado方式连接access 连接字符串

运行环境:win7 64       vc++6.0       office 2007  32位(access 2007) 我用的是ado方式连接access数据库,(现在的Win7系统中安装的一般都是32位的Office,因为微软推荐使用32位的Office,兼容性更强,稳定性更好.access文件是.mdb(2003格式,会提示没有jet访问组件) .accdb(2007格式)),因此需要安装AccessDatabaseEngine_X64.exe驱动,安装时会提示先卸载office再安装

SQL Server 连接字符串和身份验证 学习

SQL Server .NET Data Provider 连接字符串包含一个由一些属性名/值对组成的集合.每一个属性/值对都由分号隔开.          PropertyName1=Value1;PropertyName2=Value2;PropertyName3=Value3;.....同样,连接字符串必须包含SQL Server实例名称:          Data Source=ServerName;          使用本地的SQL Server(localhost),如果想要使用

有关连接字符串的一些细节

关于针对不同的数据库服务器的连接字符串的编写方式,请参考下面的链接 http://connectionstrings.com/default.aspx (这是一个独立的第三方网站,整理了几乎所有的连接字符串) 关于SqlConnection.ConnectionString属性的详细介绍,请参考下面的官方文档 http://msdn.microsoft.com/zh-cn/library/system.data.sqlclient.sqlconnection.connectionstring(V

SQL Server连接字符串

//windows身份验证1 //string strCon = @"Data Source=.\sqlexpress;Initial Catalog=db1;Integrated Security=True;Pooling=False"; //windows身份验证2 //string strCon = @"server=.\sqlexpress;database=db1;Integrated Security=True;"; //Sql Server身份验证1

python连接字符串的方式

发现Python连接字符串又是用的不顺手,影响速度 1.数字对字符进行拼接 s=""  #定义这个字符串,方便做连接 print type(s) for i in range(10): print i type(i) s+=str(i)  #转换类型在对接 print s 2.字符对字符进行拼接 string="abcdef" for i in string: print i+'jun'  直接使用字符串连接 3.列表和字符串的拼接 list1=['hello','

ADO.NET学习笔记之连接字符串

ADO.NET 2.0学习笔记之连接字符串 刚刚入门不久,想什么学习下dot net平台,就先从数据访问入手吧,从今天开始认真学习ado.net 2.0,为将来发展做好坚实基础. 连接字符串 SQL Client .net数据提供程序在连接到数据库时极其灵活,它提供了多种用以生成连接字符串的方式.可以使用关键字,例如“Data Sourse”.“Initial Catalog”,也可以使用"Server".“Database”等旧术语. 下面是两个例子,用于连接到SqlServer数据