zoukankan      html  css  js  c++  java
  • 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=-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登录localhostadmin数据库。

       

    mongodb://fred:foobar@localhost

       

    使用用户名fred,密码foobar登录localhostbaz数据库。

       

    mongodb://fred:foobar@localhost/baz

       

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

       

    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

       

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

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

  • 相关阅读:
    1451. Rearrange Words in a Sentence
    1450. Number of Students Doing Homework at a Given Time
    1452. People Whose List of Favorite Companies Is Not a Subset of Another List
    1447. Simplified Fractions
    1446. Consecutive Characters
    1448. Count Good Nodes in Binary Tree
    709. To Lower Case
    211. Add and Search Word
    918. Maximum Sum Circular Subarray
    lua 时间戳和时间互转
  • 原文地址:https://www.cnblogs.com/AlvinLee/p/6062167.html
Copyright © 2011-2022 走看看