Hãy thử sử dụng các tùy chọn sau:
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"
}
});
Trong khi tài liệu chỉ định ping là chiến lược mặc định, có vẻ như Mongoose yêu cầu bạn chỉ định một chiến lược khi bạn sử dụng readPreference .
Cũng lưu ý rằng secondaryPreferred không giống với nearest . secondaryPreferred ưu tiên lượt đọc của các thành viên phụ (như tên cho thấy) bất kể độ trễ của mạng, nơi nearest ưu tiên các lần đọc cho thành viên có độ trễ mạng thấp nhất.
Thiếu cấu hình sai trong tập hợp bản sao của bạn, hãy đảm bảo rằng trang chính của bạn đang trực tuyến và có thể truy cập được - theo mặc định, Mongoose sẽ từ chối sử dụng cấu hình phụ nếu tập hợp chính ngoại tuyến.