4
我连接到不是本地主机的mongo服务器。我正在使用猫鼬。 而在某些时刻,我需要与蒙戈本地连接驱动器,所以我做喜欢:mongoose.mongo.MongoClient.connect()是否在没有mongo shell的情况下工作?
mongoose.mongo.MongoClient.connect(uri, function (err, conn) {});
但conn
对象是null
。
最近,我改变了服务器的结构,现在所有蒙戈数据库是远程的,和我的新节点的机器我没有安装在所有蒙戈贝壳......在首先是工作的罚款和连接URI是:
mongodb://x.x.x.x:27017/database,mongodb://y.y.y.y,mongodb://z.z.z.z
其中x.x.x.x:27017
是主要的,经过一段时间由于初始小学的休息,新的小学被选举,现在我开始与相同的uri,但连接对象是null
,我不知道为什么......
有没有人有类似的问题?或者可能的解决方案或想法....
'Mongoose ODM'(或ny MongoDB驱动程序)不依赖'mongo' shell进行连接。驱动程序使用[MongoDB有线协议](http://docs.mongodb.org/meta-driver/latest/legacy/mongodbwire-wireless)直接与'mongod'服务器(或'mongos',用于分片群集)交换消息。协议/)。我建议尝试从你计算机上的'mongo' shell(或者你正在运行Mongoose代码的地方)连接,看看是否存在一个普遍的连接问题。有可能您的远程'mongod'实例阻止了通过防火墙或'bind_ip'指令的连接。 – Stennie
解决方案是连接uri的MongoClient是不正确的......我用的是和我用在猫鼬中一样的uri,但是正确的是这个:'mongodb:// xxxx:27017,yyyy:27017,zzzz:27017/database' – Nenad