连接到mongos时的Mongodb连接字符串格式

连接到mongos时的Mongodb连接字符串格式,mongodb,Mongodb,使用mongodb节点驱动程序连接到db时: db{Object,默认值:null}要在db对象上设置的散列选项 服务器{Object,默认值:null}要在服务器对象上设置的散列选项,请参阅服务器构造函数** replSet{Object,默认值:null}要在replSet对象上设置的散列选项,请参阅replSet构造函数** mongos{Object,默认值:null}要在mongos对象上设置的散列选项,请参阅mongos构造函数** 我的问题是,当连接到本地mongos(碎片路由器)

使用mongodb节点驱动程序连接到db时:

db{Object,默认值:null}要在db对象上设置的散列选项

服务器{Object,默认值:null}要在服务器对象上设置的散列选项,请参阅服务器构造函数**

replSet{Object,默认值:null}要在replSet对象上设置的散列选项,请参阅replSet构造函数**

mongos{Object,默认值:null}要在mongos对象上设置的散列选项,请参阅mongos构造函数**

我的问题是,当连接到本地mongos(碎片路由器)实例时,
服务器
选项是否多余?还是应该使用
服务器
mongos
选项的组合?

我无法从文档中清楚地确定这一点,mongos哈希中的选项非常有限

编辑:我使用的选项格式(通过mongoose)是:


您参考的文档中的要点实际上说明了使用“url”连接字符串格式可以传递的选项的限制,其中“选项”包含在传递给MongoClient构造函数的“url”中

这实际上意味着,如果您需要比可用的连接字符串选项提供的“更多控制”,那么您可以使用
服务器
对象直接指定或包括不受支持的选项:

例如:

var mongoClient = MongoClient.connect(
    new Server( "localhost", 27017 ),
    { 
       socketOptions: {
           keepAlive: 1
       }
    }
);

mongoClient.open(function(err,mongoClient) {
    // etc.
如果希望应用程序可以使用多个路由器,甚至可以将mongos实例数组作为
服务器
对象


因此,连接到mongos实例时并不支持这些选项,而是使用连接字符串格式时不支持某些应用的选项。

对不起,是的,我可能使用了错误的术语-我知道这些选项不能由标准URI选项控制。但我真正想知道的是——服务器和mongos选项可以一起使用吗?或者服务器选项在连接到mongos实例时会被忽略吗?顺便说一句,我不是直接使用mongoClient,我们使用的是mongoskin和mongoose的组合。我添加了一个我们正在使用的格式示例。也许这不是链接到的最佳文档。@UpTheCreek您仍然可以使用所示的选项初始化这两个文档上的连接。两者实际上都在后台使用本机驱动程序。@但我只连接到mongos-mongos会忽略服务器哈希吗?@UpTheCreek不会。因此,本文对文档进行了澄清,该文档讨论了使用散列选项传递URL或服务器配置对象的区别。大多数标准选项都可用。您需要向下滚动该页面,查看URL下排除的内容。但您仍然可以定义服务器配置。
var mongoClient = MongoClient.connect(
    new Server( "localhost", 27017 ),
    { 
       socketOptions: {
           keepAlive: 1
       }
    }
);

mongoClient.open(function(err,mongoClient) {
    // etc.