我可以将 Mongoose 连接到分片的 MongoDB 实例吗?

Rig*_*eek 3 mongoose mongodb node.js

使用 Mongoose@4.2.6,我想连接到分片的 MongoDB 实例。

const url = "mongodb://user:pass@localhost:27022,localhost:27023/db";

// This never resolves
Mongoose.connect(url, (err, db) => {
    ...
});
Run Code Online (Sandbox Code Playgroud)

当我使用本机 MongoDB@2.0.48 库(与 Mongoose 使用的版本相同)建立连接时,它可以工作。

const url = "mongodb://user:pass@localhost:27022,localhost:27023/db";

// This resolves a connection
MongoClient.connect(url, (err, db) => {
    ...
});
Run Code Online (Sandbox Code Playgroud)

当我在 Mongoose 中建立连接时,连接回调永远不会解决。

我必须配置 Mongoose 中的某些内容以允许我连接到分片 Mongo 实例吗?

谢谢

Rig*_*eek 6

需要传入一个对象作为第二个参数,值为 mongos = true

const url = "mongodb://user:pass@localhost:27022,localhost:27023/db";

// This now resolves
Mongoose.connect(url, { mongos: true }, (err, db) => {
    ...
});
Run Code Online (Sandbox Code Playgroud)

从文档中不是很清楚,但它在那里 - http://mongoosejs.com/docs/connections.html