gpt4 book ai didi

javascript - 如何动态确定mongo写关注

转载 作者:可可西里 更新时间:2023-11-01 10:03:55 27 4
gpt4 key购买 nike

我正在使用 mongoose 连接到 mongo 数据库:

var options = {
db: {
w: 2, /* replica acknowledged */
readPreference: 'nearest'
}
}

mongoose.connect('mongodb://localhost:27017/some_db', options);

在我的开发环境中,这个 mongodb 不会被复制,这会导致当写入问题设置为 2 时发生错误:

cannot use 'w' > 1 when a host is not replicated

但是在生产中它会被复制所以我需要这个设置。我想我需要一种方法来确定我连接到的 mongo 是否被复制,如果是,则将写入关注设置为 2(如上所示)。

我可以使用的一个解决方案是 Node 驱动程序 replSetGetStatus然后检查返回的错误是否表明没有复制mongo。

虽然这感觉很脏,但有没有更好的方法来解决这个问题?

最佳答案

您应该根据您的应用程序是在开发模式还是生产模式下运行,在您的 process.env 中设置一个变量,如果它等于“生产”,则将 write concern 设置为 2,否则默认为 1。

var options = {
db: {
w: process.env.NODE_ENV === 'production' && 2 || 1,
readPreference: 'nearest'
}
}

mongoose.connect('mongodb://localhost:27017/some_db', options);

关于javascript - 如何动态确定mongo写关注,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28614136/

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