Estoy recién aprendiendo driver mongodb-native para nodejs.¿Por qué hay mongo.Server y mongo.Db separados en mongodb-native driver?
Me conecto así.
var mongo=require("mongodb")
var serv=mongo.Server("localhost", 27017)
var dbase=mongo.Db("MyDatabase", serv)
Y eso funciona. Pero si trato de crear una nueva conexión de base de datos usando el mismo servidor, aparece un error.
var dbase2=mongo.Db("MyDatabase2", serv)
"Error: Un servidor o instancia ReplSet no se pueden compartir entre varias instancias de DB"
pero funciona si un crea una nueva conexión con el servidor por primera vez.
var serv2=mongo.Server("localhost", 27017)
var dbase2=mongo.Db("MyDatabase2", serv2)
Así que mi pregunta es por qué hay 2 funciones de conexión, uno para el servidor y otro para Db, cuando parece que siempre se deben utilizar juntos?
¿Por qué no funciona así?
var dbase=mongo.Db("localhost", 27017, "MyDatabase")
Quiero hacer mi propia función que hace esto, pero me pregunto si hay alguna otra razón por la que están separados.
Gracias.
Las conexiones de bases de datos separadas podrían hacerse incluso si no tuvieran un constructor de 'Servidor 'separado. Las conexiones múltiples no se hacen usando el constructor 'Db', sino la propiedad' .db' en la instancia del constructor 'Db'. ¿Pero podría explicar qué quiere decir con respecto al servidor ReplSet? ¿Es algo útil sin llamar al constructor 'Db'? –
Bueno, mongo le permite tener servidores mongodb separados ejecutando esa replicación de datos, y se puede conectar a todos ellos, por ejemplo: ('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
respuesta actualizada con más información. mencionado mongo-skin que es un contenedor para mongo-native y se conecta a db y servidor en un comando – Kostia