MongoDB连接标准格式:

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

参数说明

Mongodb://

必填的前缀,标识当前字符串为便准链接格式

username:password@

可选项,给出用户名和密码后,在连接数据库服务器后,驱动都会尝试登陆这个数据库

host

uri里唯一的必填项,数据库的连接地址,人如果需要连接副本集,需要制定多个主机地址

:port

可选项,如果不填则默认为27017端口

/database

希望连接到的数据库名称,只要在设置username:password@后才会有效,如果不指定,则默认为admin数据库

?options

可选项,如果不适用/database,则需要在前面加上/。所有连接选项都是键值对name=value格式,键值对之间使用&或;(分号)分割

 
 

options参数说明

connect=direct|replicaset

direct: 直接建立一个到服务器的连接。如果指定了多个host,将按先后顺序挨个尝试建立连接,直到连接建立成功为止。如果只指定了一个host,则 direct 为默认值。

replicaset: 使用creplica set semantics建立连接(即使只提供了一个host)。指定的host作为种子列表来查找完整的replica set。当指定多个host时 replicaset 为默认值。

replicaset=name

驱动验证建立连接的replica set的名字。应用于 connect=replicaset。

slaveok=true|false

true: 对于 connect=direct 模式,驱动对列表中的第一个服务器建立连接,即使它不是主服务器。对 connect=replicaset 模式,驱动将所有写操作发送到主节点,将所有读操作按round robin顺序分发到从节点。

false: 对 connect=direct 模式,驱动按顺序尝试所有host直到找到主节点。对 connect=replicaset 模式,驱动将只连接到主节点,并将所有读操作和写操作都发送到主节点。

safe=true|false

true: 驱动在每次更新操作后都发送 getlasterror 命令以确保更新成功(参考 w 和 wtimeout)。

false: 驱动每次更新操作后不发送 getlasterror 命令。

w=n

w:代表server的数量:。
w=-1 不等待,不做异常检查

w=0 不等待,只返回网络错误

w=1 检查本机,并检查网络错误

w>1 检查w个server,并返回网络错误

应用于safe=true

wtimeoutMS=ms

写操作超时的时间,应用于 safe=true.

fsync=true|false

是不是等待刷新数据到磁盘,应用于safe=true

journal=true|false

是不是等待提交的数据已经写入到日志,并刷新到磁盘,应用于safe=true

maxPoolSize=n

minPoolSize=n

一些驱动会把没用的连接关闭。 然而,如果连接数低于minPoolSize值之下, 它们不会关闭空闲的连接。注意:连接会按照需要进行创建,因此当连接池被许多连接预填充的时候,minPoolSize不会生效。

waitQueueTimeoutMS=ms

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

waitQueueMultiple=n

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

connectTimeoutMS=ms

可以打开连接的时间。

socketTimeoutMS=ms

发送和接受sockets的时间

ReadPreference

primary

主节点,默认模式,读操作只在主节点,如果主节点不可用,报错或者抛出异常。

primaryPreferred

首选主节点,大多情况下读操作在主节点,如果主节点不可用,如故障转移,读操作在从节点。

secondary

从节点,读操作只在从节点, 如果从节点不可用,报错或者抛出异常。

secondaryPreferred

首选从节点,大多情况下读操作在从节点,特殊情况(如单主节点架构)读操作在主节点。

nearest

最邻近节点,读操作在最邻近的成员,可能是主节点或者从节点

 
 

参考示例:

 
 

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

 
 

mongodb://localhost

 
 

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

 
 

mongodb://fred:foobar@localhost

 
 

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

 
 

mongodb://fred:foobar@localhost/baz

 
 

为example1.com服务器2为example2。

 
 

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

 
 

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

 
 

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

 
 

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

 
 

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

 
 

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

 
 

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

 
 

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

 
 

安全模式连接到localhost:

 
 

mongodb://localhost/?safe=true

 
 

秒。

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

MongoDB学习笔记——MongoDB 连接配置的更多相关文章

  1. MongoDB学习笔记:MongoDB 数据库的命名、设计规范

    MongoDB学习笔记:MongoDB 数据库的命名.设计规范     第一部分,我们先说命名规范. 文档 设计约束 UTF-8 字符 不能包含 \0 字符(空字符),这个字符标识建的结尾 . 和 $ ...

  2. MongoDB 学习笔记一: 配置

    下载MongoDB 下载地址:https://www.mongodb.com/download-center?jmp=nav#community 这里是在windows平台下安装MongoDB, 下载 ...

  3. MongoDB学习笔记~MongoDB实体中的值对象

    回到目录 注意,这里说的值对象是指在MongoDB实体类中的,并不是DDD中的值对象,不过,两者也是联系,就是它是对类的补充,自己本身没有存在的价值,而在值对象中,也是不需要有主键Id的,这与DDD也 ...

  4. MongoDB 学习笔记(原创)

    MongoDB 学习笔记 mongodb 数据库 nosql 一.数据库的基本概念及操作 SQL术语/概念 MongoDB术语/概念 解释/说明 database database 数据库 table ...

  5. MongoDB学习笔记系列

    回到占占推荐博客索引 该来的总会来的,Ef,Redis,MVC甚至Sqlserver都有了自己的系列,MongoDB没有理由不去整理一下,这个系列都是平时在项目开发时总结出来的,希望可以为各位一些帮助 ...

  6. MongoDB学习笔记系列~目录

    MongoDB学习笔记~环境搭建 (2015-03-30 10:34) MongoDB学习笔记~MongoDBRepository仓储的实现 (2015-04-08 12:00) MongoDB学习笔 ...

  7. mongoDB 学习笔记纯干货(mongoose、增删改查、聚合、索引、连接、备份与恢复、监控等等)

    最后更新时间:2017-07-13 11:10:49 原始文章链接:http://www.lovebxm.com/2017/07/13/mongodb_primer/ MongoDB - 简介 官网: ...

  8. 【转】mongoDB 学习笔记纯干货(mongoose、增删改查、聚合、索引、连接、备份与恢复、监控等等)

    mongoDB 学习笔记纯干货(mongoose.增删改查.聚合.索引.连接.备份与恢复.监控等等) http://www.cnblogs.com/bxm0927/p/7159556.html

  9. MongoDB学习笔记一:MongoDB的下载和安装

    MongoDB学习笔记一:MongoDB的下载和安装 趁着这几天比較空暇,准备学习一下MongoDB数据库.今天就简单的学习了一些MongoDB的下载和安装.并创建了存储MongoDB的数据仓库. 将 ...

随机推荐

  1. SQL Server 2012:SQL Server体系结构——一个查询的生命周期(第1部分)

    为了缩小读取操作所涉及范围,本文首先着眼于简单的SELECT查询,然后引入执行更新操作有关的附加过程.最后你会读到,优化性能时SQLServer使用还原工具的相关术语和流程. 关系和存储引擎 如图所示 ...

  2. C#语法糖之Cookies操作类 asp.net

    用法: //声名一个数据集合 var listString = new List<string>() { "a", "b", "c&quo ...

  3. C#动态属性(.NET Framework4.5支持)

    获取方法: /* 使用方法: 1. 在web.config 的<configSections> 节点中添加 <section name="customConfigs&quo ...

  4. ASP.NET MVC5--添加验证

    1.在Model类里面添加验证,代码如下: public class Movie { public int ID { get; set; } [StringLength(,MinimumLength= ...

  5. C#设计模式——装饰者模式(Decorator Pattern)

    一.例子在软件开发中,我们往往会想要给某一类对象增加不同的功能.比如要给汽车增加ESP.天窗或者定速巡航.如果利用继承来实现,就需要定义无数的类,Car,ESPCar,CCSCar,SunRoofCa ...

  6. 自定义控件开发的调试及DesignMode的状态处理

    在开发Winform程序的时候,我们往往需要根据需要做一些自定义的控件模块,这样可以给系统模块重复利用,或者实现更好的效果等功能.但在使用的时候,我们又往往设计时刻发现一些莫名其妙的错误,那么我们该如 ...

  7. Winform开发框架之字典管理模块的更新,附上最新2013年全国最新县及县以上行政区划代码sql脚本

    在很多项目里面,字典管理是必备的项目模块,而这个又是比较通用的功能,因此可以单独做成一个通用字典管理,例如这个模块,可以通过集成的方式,使用在我的<Winform开发框架>.<WCF ...

  8. css 布局absolute与relative的区别

    absolute:当使用时,表示在文档流中没有实际存在位置(浮动),在不设置任何方位值时,只能按兵不动,当设置了方位值之后,会紧接着去寻找距离最近的能够将它包含住的父级元素,然后进行定位. relat ...

  9. 重新想象 Windows 8 Store Apps (67) - 后台任务: 推送通知

    [源码下载] 重新想象 Windows 8 Store Apps (67) - 后台任务: 推送通知 作者:webabcd 介绍重新想象 Windows 8 Store Apps 之 后台任务 推送通 ...

  10. 泛函编程(12)-数据流-Stream

    在前面的章节中我们介绍了List,也讨论了List的数据结构和操作函数.List这个东西从外表看上去挺美,但在现实中使用起来却可能很不实在.为什么?有两方面:其一,我们可以发现所有List的操作都是在 ...