[英]Unable to read from MongoDB slave using Node.js
我在相同的方面看到了很多問題,但不知怎的,我仍然無法成功連接到MongoDB Slave。
我使用mongo-k8s-sidecar在Kubernetes上運行我的集群,將我的應用程序直接連接到master工作正常,但是每當我嘗試連接到slave時,我似乎無法讀取,這里是錯誤代碼:
MongoError: not master and slaveOk=false
我在我的應用程序中使用Node.js,這就是我連接的方式:
var mongodb = require('mongodb').Db;
var Server = require('mongodb').Server
var db = new mongodb('dbname', new Server("localhost",27017,{slaveOk: true}));
db.open(function(err, conn){
if (err){
callback(err);
}else {
client=conn;
client.createIndex("tablename", {field:1}
, {background:true}, function(err, i) {
logger.info(err);
});
//The rest of the code is trimmed
我在這里錯過了什么?
即使您正在使用slaveOk / ReadPreference.SECONDARY,也無法在輔助成員上運行createIndex()
。
如果你在沒有createIndex()
調用的情況下測試代碼,你可能會發現它正如你所期望的那樣工作。
有關更多詳細信息,請參閱在副本集上構建索引 。 基本上,如果要在輔助節點上構建索引,則需要停止mongod實例,將其作為獨立實例啟動(不使用replSet選項),然后構建索引。
或者您只能在主節點上創建索引,並且索引創建將復制到輔助節點。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.