我刚刚学习了nodejs的mongodb本地驱动程序。为什么mongodb-native驱动中有单独的mongo.Server和mongo.Db?
我这样连接。
var mongo=require("mongodb")
var serv=mongo.Server("localhost", 27017)
var dbase=mongo.Db("MyDatabase", serv)
而且工作。但是,如果我尝试使用同一台服务器创建新的数据库连接,则会出现错误。
var dbase2=mongo.Db("MyDatabase2", serv)
“错误:服务器或复制集实例不能跨越多个数据库实例共享”
但是如果让新的服务器连接第一个它的工作原理。
var serv2=mongo.Server("localhost", 27017)
var dbase2=mongo.Db("MyDatabase2", serv2)
所以我的问题是,为什么有2个连接功能,一个用于服务器和一个用于分贝,当它好像他们必须一起使用?
为什么它不这样。
var dbase=mongo.Db("localhost", 27017, "MyDatabase")
我想使我自己的功能,这样做,但我想知道是否有其他原因,他们是分开的。
谢谢。
即使它们没有单独的“服务器”构造函数,也可以完成单独的数据库连接。多重连接不是使用'Db'构造函数完成的,而是'Db'构造函数实例上的'.db'属性。但是,你能解释一下你对ReplSet服务器的意思吗?没有调用'Db'构造函数是否有用? – 2012-08-29 15:57:19
那么,mongo让你有独立的mongodb服务器运行该复制数据,并且你将它们连接到一起例如:('192.168.0.1:27017/?auto_reconnect=true','192.168.0.2:27017/?auto_reconnect=true ','192.168.0.3:27017 /?auto_reconnect = true') – Kostia 2012-08-29 16:00:12
已更新的答案与更多信息。上面提到的mongo-skin是mongo-native的一个包装,并且通过一个命令连接到db和服务器 – Kostia 2012-08-29 16:04:03