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.