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.