gpt4 book ai didi

node.js - 无法使用 Node.js 从 MongoDB slave 读取

转载 作者:可可西里 更新时间:2023-11-01 09:11:57 24 4
gpt4 key购买 nike

我已经看到很多关于相同方面的问题,但不知何故我仍然无法成功连接到 MongoDB Slave。

我正在使用 mongo-k8s-sidecar 在 Kubernetes 上运行我的集群,将我的应用程序直接连接到主机工作正常,但是每当我尝试连接到从机时,我似乎无法阅读,这是错误代码:

MongoError: not master 和 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() 的情况下测试代码,您可能会发现它按预期工作。

参见 Build Indexes on Replica Sets更多细节。基本上,如果您想在辅助 Node 上构建索引,您需要停止 mongod 实例,将其作为独立实例启动(没有 replSet 选项),然后构建索引。

或者您可以只在主 Node 上创建索引,索引创建将复制到辅助 Node 。

关于node.js - 无法使用 Node.js 从 MongoDB slave 读取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47557762/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com