zoukankan      html  css  js  c++  java
  • mongoose 文档(八) Connections

    我们可以通过利用mongoose的connect()方法连接到MongoDB 。

    mongoose.connect('mongodb://localhost/myapp');

    这是在默认端口(27017)连接到在本地运行的myapp数据库的最低需要。如果本地连接失败那么尝试使用127.0.0.1代替localhost。当本地主机名改变有时会出现问题。

    我们也能根据你的环境指定URI中的几个参数。

    mongoose.connect('mongodb://username:password@host:port/database?options...');

    详细看MongoDB连接字符串格式

    Options

    connect方法还接收一个option对象,该对象将被传递给底层驱动程序。这里的所有选项优先于连接字符串传递的选项。

    mongoose.connect(uri, options);

    以下是可用的选项键:

    db          -       传递给collection db实例
    
    server      -       传递给collection server实例
    
    repelset    -       传递给collection repelset实例
    
    user        -       验证用户(如果没有在uri指定)
    
    pass        -       验证密码(如果没有在uri指定)
    
    auth        -       认证选项
    
    mogos       -       传递给 [underlying driver's mongos options](http://mongodb.github.io/node-mongodb-native/2.0/api/Mongos.html)

    例子:

    var options = {
      db: { native_parser: true },
      server: { poolSize: 5 },
      replset: { rs_name: 'myReplicaSetName' },
      user: 'myUserName',
      pass: 'myPassword'
    }
    mongoose.connect(uri, options);

    注意:server 选项auto_reconnect 默认为true,可以被覆盖。

            db选项forceServerObjectId被设置为false,不能被覆盖。

    关于可用选项的更多信息见driver

    关于keepAlive的说明

    对于长时间运行的程序,通常是以毫秒为单位谨慎地使用keepAlive。没有它,在一段时间之后,你可能看到没有理由的 "connection closed" 错误。如果是这样,在阅读这篇文章之后,您可能会决定启用keepAlive。

    options.server.socketOptions = options.replset.socketOptions = { keepAlive: 120 };
    mongoose.connect(uri, options);

    连接副本集

    使用同样的方法,而不是通过一个单一的URI连接到一个副本集,但我们通过逗号分隔URI。

    mongoose.connect('mongodb://[username:password@]host1[:port1][,host2[:port2],...[,hostN[:portN]]][/[database][?options]]' [, options]);

    Multi-mongos 支持

    在多个Mongos的实例也支持高可用性。给mongos实例传递一个连接字符串并设置mongos选项为true。

    mongoose.connect('mongodb://mongosA:27501,mongosB:27501', { mongos: true }, cb);

    多个连接

    到目前为止,我们已经看到了如何使用MongoDB的默认连接。有时我们可能需要mongo打开多个连接,每个有不同的读/写设置,或者只是对不同的数据库为例。在这些情况下,我们可以利用mongoose.createConnection()接受已经讨论过的所有参数,并返回一个新的连接。

    var conn = mongoose.createConnection('mongodb://[username:password@]host1[:port1][,host2[:port2],...[,hostN[:portN]]][/[database][?options]]', options);

    连接池

    每个连接,无论是用mongoose.connect还是mongoose.createConnection创建都用一个默认大小为5的内置可配置连接池备份。使用的连接选项调节其大小,:

    // single server
    var uri = 'mongodb://localhost/test';
    mongoose.createConnection(uri, { server: { poolSize: 4 }});
    
    // for a replica set
    mongoose.createConnection(uri, { replset: { poolSize: 4 }});
    
    // passing the option in the URI works with single or replica sets
    var uri = 'mongodb://localhost/test?poolSize=4';
    mongoose.createConnection(uri);
  • 相关阅读:
    10.31JS日记
    10.24JS日记
    10.23JS日记
    10.22JS日记
    10.19JS日记
    10.18JS日记
    Tomcat—Bad Request
    2016年上半年总结
    线程间操作无效
    压缩字符串的函数
  • 原文地址:https://www.cnblogs.com/surahe/p/5191598.html
Copyright © 2011-2022 走看看