使用node.js编写MongoDB副本
MongoDB replica set write with node.js
我使用mongodb本地驱动程序node.js连接到3个节点(PRIMARY和两个secondary)的副本集,如下所述: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
没有记录,没有它,我一直得到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,";
当您想要从应用程序中抽象出副本集配置以获得更大的灵活性时,您可以构建一个分片集群并让应用程序连接到路由器。路由器将负责将连接转发到合适的副本集成员
相关文章:
- 如何缩短MongoDB ObjectId并在Mongoose模式中使用它
- 如何处理node.js节点mongodb中的连接和查询队列
- MongoDB (php) - 以数组而不是多个属性的形式返回文档属性
- 使用mongodb更新中的一个变量
- 键名中的 MongoDB 点 (.)
- 用于视频类型的MongoDB结构's
- Mongodb数千个并行运行的查询
- 如何访问对象内部的“categoryIds”字段/键,该对象包含mongodb's `ObjectId(s)`数
- 无法在Meteor/MongoDB中返回当前用户对象
- 检索MongoDB binData并显示为<img>src
- Mongodb/JS:查找最短(最早)日期
- 如何在MongoDB中将String转换为Array
- NodeJS expressJS使用multer和passport将文件上传并保存到MongoDB
- MongoDB + SQL Select equivalent
- mongodb regex parameter
- Mongodb$in以与数组中相同的顺序获取结果
- MongoDB-通过比较集合和对象的数组来返回现有字段的数组
- 更新属性工作不正常Meteor/MongoDB
- 使用node.js编写MongoDB副本
- mongodb副本集群的蒙皮和连接问题