我无法使用以下代码连接到mongolab:
// DATABASE CONNECTION
var db1 = mongoose.createConnection('mongodb://foo:bar@ds011168.mlab.com:11168/db1');
var db2 = db1.useDb('mongodb://foo:bar@ds011168.mlab.com:12341/db2');
我试图在2个数据库中创建多个连接,所以我使用.createConnection()
作为第一个数据库,然后使用db1.useDb()
作为第二个数据库。这对localhost
完全正常,但是当我切换到mongolab时,一切都崩溃了。
我的mongolab设置没有任何问题,因为当我只使用connect()
函数时:var db1 = mongoose.connect('mongodb://foo:bar@ds011168.mlab.com:11168/db1');
它连接没有问题。但是,当我使用上面给出的代码(第一个代码块)时,会出现此错误:MongoError: database names cannot contain the character '.'
我的目标是能够连接到mongolab上的多个数据库。
使用最新的mongoose npm。
答案 0 :(得分:0)
我找到了解决这个问题的方法。我将发布此答案以供将来参考,以防有人可能遇到同样的问题。
请注意以下代码:
var db1 = mongoose.createConnection('mongodb://foo:bar@ds011168.mlab.com:11168/db1');
var db2 = db1.useDb('mongodb://foo:bar@ds011168.mlab.com:12341/db2');
我没有使用db1
的连接,而是使用它:
var db1 = mongoose.createConnection('mongodb://foo:bar@ds011168.mlab.com:11168/db1');
var db2 = mongoose.createConnection('mongodb://foo:bar@ds011168.mlab.com:12341/db2');
让db2
拥有自己的连接。
免责声明,我还不知道这是否是正确的方法,但同时也解决了问题。也许通过这样做,您可以为db1
和db2