苏飞论坛

 找回密码
 马上注册

QQ登录

只需一步,快速开始

分布式系统框架(V2.0) 轻松承载百亿数据,千万流量!讨论专区 - 源码下载 - 官方教程

HttpHelper爬虫框架(V2.7-含.netcore) HttpHelper官方出品,爬虫框架讨论区 - 源码下载 - 在线测试和代码生成

HttpHelper爬虫类(V2.0) 开源的爬虫类,支持多种模式和属性 源码 - 代码生成器 - 讨论区 - 教程- 例子

查看: 7014|回复: 1

[MongoDB] Mongodb连接字符串详细说明

[复制链接]
发表于 2014-7-23 08:03:37 | 显示全部楼层 |阅读模式
Mongodb连接字符串详细说明


mongodb://[username:password@]host1[:port1][,host2[:port2],…[,hostN[:portN]]][/[database][?options]]
注:并非所有MongoDB驱动都支持完整的连接字符串,不支持此格式连接字串的驱动会有替代连接方案,具体请参照驱动自身的说明文档。

[C#] 纯文本查看 复制代码
 mongodb:// 是连接字串必须的前缀字串
 username:password@ 可选项,连接到数据库后会尝试验证登陆
 host1 必须的指定至少一个host
 :portX 可选项,默认连接到27017
 /database 如果指定username:password@,连接并验证登陆指定数据库。若不指定,默认打开admin数据库。
 ?options 是连接选项。如果不使用/database,则前面需要加上/。所有连接选项都是键值对name=value,键值对之间通过&或;(分号)隔开

连接选项包括:
[C#] 纯文本查看 复制代码
Replica set:
replicaSet=name

驱动会校验replica set的名字。意味着给定的hosts是主库(seed list),驱动将试图找到replica set中的所有成员。(•The driver verifies that the name of the replica set it connects to matches this name. Implies that the hosts given are a seed list, and the driver will attempt to find all members of the set.)
Single server:
[C#] 纯文本查看 复制代码
slaveOk=true|false
true:在connect=direct模式下,驱动会连接第一台机器,即使这台服务器不是主。在connect=replicaSet模式下,驱动会发送所有的写请求到主并且把读取操作分布在其他从服务器。
false: 在 connect=direct模式下,驱动会自动找寻主服务器. 在connect=replicaSet 模式下,驱动仅仅连接主服务器,并且所有的读写命令都连接到主服务器。

自由选项:
[C#] 纯文本查看 复制代码
safe=true|false

 true: 驱动程序会在提交每次更新操作后执行getLastError命令以确认更新是有效的(参见w和wtimeoutMS)
 false:驱动程序在每次更新操作后不会执行getLastError
[C#] 纯文本查看 复制代码
w=n

 驱动在getLastError命令加上{ w : n } 参数。意味着safe=true
[C#] 纯文本查看 复制代码
wtimeoutMS=ms

 驱动在getLastError命令加上{ wtimeout : ms }参数。意味着safe=true.
[C#] 纯文本查看 复制代码
fsync=true|false

 true: 驱动在getLastError命令加上{ fsync : true } 参数。意味着safe=true.
 false: 驱动不在getlasterror 命令加fsync参数。
[C#] 纯文本查看 复制代码
journal=true|false

 true: 同步到 journal. 意味着safe=true.
[C#] 纯文本查看 复制代码
connectTimeoutMS=ms

 设置建立连接超时,单位ms
[C#] 纯文本查看 复制代码
socketTimeoutMS=ms

 设置socket发送或接受超时时间,单位ms
这些选项都是大小写不敏感的。
连接MongoDB(默认连接到localhost:27017)


[C#] 纯文本查看 复制代码
mongodb://localhost

使用用户fred和密码foobar连接


[C#] 纯文本查看 复制代码
mongodb://fred:foobar@localhost

使用用户fred和密码foobar连接,指定数据库baz


[C#] 纯文本查看 复制代码
mongodb://fred:foobar@localhost/baz

连接到两台服务器组成的Replica Sets
[C#] 纯文本查看 复制代码
mongodb://example.com:27017,example2.com:27017



连接到三台本地服务器组成的Replica Sets(分别使用27017、27018和27019端口)
[C#] 纯文本查看 复制代码
mongodb://localhost,localhost:27018,localhost:27019


连接到三台服务器组成的Replica Sets,把所有写操作集中在主库,读操作分布在各丛库


[C#] 纯文本查看 复制代码
mongodb://host1,host2,host3/?slaveOk=true

使用安全模式连接


[C#] 纯文本查看 复制代码
mongodb://localhost/?safe=true

安全模式下连接到一组Replica Sets,等待至少两台机器同步成功,并设置两秒的超时时间
[C#] 纯文本查看 复制代码
mongodb://host1,host2,host3/?safe=true;w=2;wtimeoutMS=2000



连接池(Connection Pooling)
服务器每个TCP连接对应一个进程。强力推荐你在应用程序中实现自身的连接池。多数驱动程序也会在背后悄悄帮你做连接池。一个常见的例外是你的应用会为每个请求重新配置一个新进程譬如CGI和PHP。




本帖被以下淘专辑推荐:



1. 开通SVIP会员,免费下载本站所有源码,不限次数据,不限时间
2. 加官方QQ群,加官方微信群获取更多资源和帮助
3. 找站长苏飞做网站、商城、CRM、小程序、App、爬虫相关、项目外包等点这里
 楼主| 发表于 2014-7-23 08:25:35 | 显示全部楼层
比如要连接副本集

mongodb://192.168.1.127:27010,192.168.1.127:27011,192.168.1.127:27012/?connect=replicaSet;replicaSet=mongolist;readPreference=nearest;connectTimeout=15s;maxPoolSize=50000
您需要登录后才可以回帖 登录 | 马上注册

本版积分规则

QQ|手机版|小黑屋|手机版|联系我们|关于我们|广告合作|苏飞论坛 ( 豫ICP备18043678号-2)

GMT+8, 2024-12-27 19:04

© 2014-2021

快速回复 返回顶部 返回列表