Как подключить реплик mongodb с помощью mongoengine?
Я пытаюсь подключиться к репликам MongoDB с помощью MongoEngine? Я хотел бы подключиться к любому доступному серверу-получателю.
Я могу найти только примеры pyMongo. Любой помочь?
1 ответов
если вы хотите подключиться к вторичному серверу нужно укажите предпочтение чтения например SECONDARY
или SECONDARY_PREFERRED
. Обратите внимание, что при чтении данных из вторичного вы должны ожидать, что данные в конечном итоге согласованы и могут быть устаревшими (т. е. изменения, возможно, еще не реплицированы из первичного).
вы захотите импортировать ReadPreference
С базы pymongo
драйвер для списка констант. Можно указать значение по умолчанию read_preference
на уровне соединения, или в запрос.
пример использования вторичного предпочтительного (будет считываться из первичного, если вторичный недоступен):
from mongoengine import connect
from pymongo import ReadPreference
connect('mydb', host='mongodb://server1:27017,server2:27017,server3:27017', replicaSet='replset', read_preference=ReadPreference.SECONDARY_PREFERRED)
вы можете проверить, если чтения собираются вторичных с помощью mongostat --discover
.