MongoDB学习笔记——MongoDB 连接配置
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=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 连接配置的更多相关文章
- MongoDB学习笔记:MongoDB 数据库的命名、设计规范
MongoDB学习笔记:MongoDB 数据库的命名.设计规范 第一部分,我们先说命名规范. 文档 设计约束 UTF-8 字符 不能包含 \0 字符(空字符),这个字符标识建的结尾 . 和 $ ...
- MongoDB 学习笔记一: 配置
下载MongoDB 下载地址:https://www.mongodb.com/download-center?jmp=nav#community 这里是在windows平台下安装MongoDB, 下载 ...
- MongoDB学习笔记~MongoDB实体中的值对象
回到目录 注意,这里说的值对象是指在MongoDB实体类中的,并不是DDD中的值对象,不过,两者也是联系,就是它是对类的补充,自己本身没有存在的价值,而在值对象中,也是不需要有主键Id的,这与DDD也 ...
- MongoDB 学习笔记(原创)
MongoDB 学习笔记 mongodb 数据库 nosql 一.数据库的基本概念及操作 SQL术语/概念 MongoDB术语/概念 解释/说明 database database 数据库 table ...
- MongoDB学习笔记系列
回到占占推荐博客索引 该来的总会来的,Ef,Redis,MVC甚至Sqlserver都有了自己的系列,MongoDB没有理由不去整理一下,这个系列都是平时在项目开发时总结出来的,希望可以为各位一些帮助 ...
- MongoDB学习笔记系列~目录
MongoDB学习笔记~环境搭建 (2015-03-30 10:34) MongoDB学习笔记~MongoDBRepository仓储的实现 (2015-04-08 12:00) MongoDB学习笔 ...
- mongoDB 学习笔记纯干货(mongoose、增删改查、聚合、索引、连接、备份与恢复、监控等等)
最后更新时间:2017-07-13 11:10:49 原始文章链接:http://www.lovebxm.com/2017/07/13/mongodb_primer/ MongoDB - 简介 官网: ...
- 【转】mongoDB 学习笔记纯干货(mongoose、增删改查、聚合、索引、连接、备份与恢复、监控等等)
mongoDB 学习笔记纯干货(mongoose.增删改查.聚合.索引.连接.备份与恢复.监控等等) http://www.cnblogs.com/bxm0927/p/7159556.html
- MongoDB学习笔记一:MongoDB的下载和安装
MongoDB学习笔记一:MongoDB的下载和安装 趁着这几天比較空暇,准备学习一下MongoDB数据库.今天就简单的学习了一些MongoDB的下载和安装.并创建了存储MongoDB的数据仓库. 将 ...
随机推荐
- Android学习笔记之性能优化SparseArray
PS:终于考完试了.来一发.微机原理充满了危机.不过好在数据库89分,还是非常欣慰的. 学习内容: 1.Android中SparseArray的使用.. 昨天研究完横向二级菜单,发现其中使用了Sp ...
- Mysql学习笔记(八)索引
PS:把昨天的学习内容补上...发一下昨天学的东西....五月三日...继续学习数据库... 学习内容: 索引.... 索引的优点: 1.通过创建唯一索引,可以保证数据库每行数据的唯一性... 2.使 ...
- python之异常处理
异常处理是高级编程语言必备的一个功能模块. 一.异常基础 在编程过程中为了增加友好性.容错性和健壮性,在程序出现bug时一般不会将错误信息显示给用户,而是现实一个提示的页面,通俗来说就是不让用户看见大 ...
- Copy和MutableCopy
实现拷贝的方法 -copy: 1.只会产生不可变的副本对象(比如:NSString) 2.[NSMutableString copy] 产品一个不可变的nsstring对象 -mutaleCopy: ...
- QCustomplot使用分享(三) 图
一.可以实现的图 相对于其他绘制图表的第三方库来说,QCustomPlot算是比较轻量的,不仅仅能实现功能,而且二次开发比较容易.下面我们来具体说下他可以实现那些图 QCPGraph:折线图,Line ...
- awk分隔符设定为多个字符或字符串
awk -F"[01]" '{}' 这种形式指定的分隔符是或的关系,即0或1作为分隔符:awk -F"[0][1]" '{}' 这种形式指定的分隔符是合并的关 ...
- 【JS复习笔记】02 对象与函数
好吧,因为很重要的事情,几天没写笔记了. 关于对象: ||可以用来填充默认值,如:myApp.name || "无" &&可以用来避免错误,myApp.NameOb ...
- win7局域网里输入正确密码也访问不了其他的机器
1.本地安全策略-本地策略-安全选项-网络安全:LAN管理器身份验证级别,默认是“没有定义”,更改为“发送LM和NTLM响应! Windows 7系统自带的是一个统安全管理工具--本地安全策略,它可以 ...
- idea使用maven搭建springmvc
最近学着搭建springmvc,写此博客记录一下 idea版本:2016.3.1maven: apache-maven-3.3.9tomcat:apache-tomcat-8.5.8 1.New Pr ...
- Hibernate框架之Criteria查询
首先给大家说说Hibernate检索方式 Hibernate提供了5种检索对象的方式 1.导航对象图检索方式:根据已经加载的对象导航到其他对象 2.OID检索方式:按照对象的OID来检索对象 3.HQ ...