MongoDB副本集写入node.js

我使用mongodb本地驱动程序node.js来连接到3节点(PRIMARY和两个SECONDARIES)的副本集,如下所述: http : //mongodb.github.io/node-mongodb-native/2.0/api/MongoClient.html

var MongoClient = require("mongodb").MongoClient; var url = "mongodb://admin:pass@hostname:27017"; var options = { db: { readPreference: 'primaryPreferred', slaveOk: true }, replSet: { replicaSet: 'rs0' }, server: { w: 1, autoReconnect: true }; MongoClient.connect(url, options); 

请注意, slaveOk: true没有logging,没有它我继续得到slaveOk是错误的错误。 我一直得到Potentially unhandled rejection [83] MongoError: not master写。 你可以请帮忙连接到节点应用程序副本集? 也许我会指定所有连接的服务器? 但是在文档中说驱动程序足够聪明,可以在PRIMARY更改时重新连接。

为了允许客户端根据需要在副本集成员之间切换,您需要告诉它这些备用副本集成员存在。 为此,请提供以逗号分隔的所有副本集成员的URL。

 var url = "mongodb://admin:pass@hostname1:27017,mongodb://admin:pass@hostname2:27017,mongodb://admin:pass@hostname3:27017,"; 

当您想要从应用程序中抽象副本集configuration以获得更大的灵活性时,您可以构build一个分片集群并让应用程序连接到路由器。 然后,路由器将负责将连接转发给适当的副本集成员