Coba gunakan opsi berikut:
var mongoose = require("mongoose");
var dbUrl = "mongodb://***.***.***.***:27017,***.***.***.***:27017,***.***.***.***:27017,***.***.***.***:27017,***.***.***.***:27017/exampleDb";
mongoose.connect(dbUrl, {
server: {
readPreference: "nearest",
strategy: "ping"
},
replset: {
rs_name: "exampleRepSet",
readPreference: "nearest",
strategy: "ping"
}
});
Sementara dokumentasi menentukan ping
sebagai strategi default, tampaknya Mongoose mengamanatkan bahwa Anda menentukannya saat Anda menggunakan readPreference
.
Perhatikan juga bahwa secondaryPreferred
tidak sama dengan nearest
. secondaryPreferred
lebih suka membaca anggota sekunder (seperti namanya) terlepas dari latensi jaringan, di mana nearest
memprioritaskan pembacaan kepada anggota dengan jumlah latensi jaringan terendah.
Karena kesalahan konfigurasi di set replika Anda, pastikan primer Anda online dan dapat dijangkau - secara default Mongoose akan menolak menggunakan sekunder jika primer offline.