使用mongodb节点驱动程序you can specify various options which are arranged in four hashes:
连接到数据库时db {Object,default:null}要在db对象上设置的散列值选项,
server {Object,default:null}要在服务器对象上设置的散列关闭选项,请参阅服务器构造函数**
replSet {Object,default:null}要在replSet对象上设置的散列值选项,请参阅ReplSet构造函数**
mongos {Object,default:null}要在mongos对象上设置的哈希关闭选项,请参阅Mongos构造函数**
我的问题是,当连接到本地mongos(分片路由器)实例时,server
选项是多余的吗?或者是否应该使用server
和mongos
选项的组合?
我无法从文档中清楚地确定这一点,并且mongos哈希中的选项非常有限。
编辑:我使用(通过mongoose)的选项格式为:
options = {
server:{
...
}
mongos:{
...
}
}
答案 0 :(得分:0)
您所引用的文档中的要点实际上说明了您可以使用" url"传递的选项的限制。连接字符串格式,其中"选项"包含在那个" url"传递给MongoClient构造函数。
这实际意味着如果你需要"更多控制"您可以使用Server
对象来直接指定或以其他方式包含不受支持的选项:
例如:
var mongoClient = MongoClient.connect(
new Server( "localhost", 27017 ),
{
socketOptions: {
keepAlive: 1
}
}
);
mongoClient.open(function(err,mongoClient) {
// etc.
如果您希望应用程序可以使用多个路由器,那么即使将一组mongos实例作为Server
个对象。
因此,连接到mongos实例时不会支持选项,但使用连接字符串格式时不支持某些适用的选项。