Předvolby čtení jsou následující:
- PRIMÁRNÍ :Dotazy se odesílají primární části sady replik.
- PRIMARY_PREFERRED :Dotazy jsou odesílány na primární, pokud jsou k dispozici, jinak na sekundární.
- SEKUNDÁRNÍ :Dotazy jsou distribuovány mezi sekundární. Pokud nejsou k dispozici žádné sekundární položky, dojde k chybě.
- SECONDARY_PREFERRED :Dotazy jsou rozděleny mezi sekundární nebo primární, pokud není k dispozici žádná sekundární.
- NEJBLIŽŠÍ :Dotazy jsou rozděleny mezi všechny členy.
Takže ne konkrétní pro nejbližší sekundární. Toho můžete dosáhnout kombinací NEAREST a sady značek a označování sekundárních souborů.
Pak, pokud byly sekundární stránky označeny {'secondaries': 1}
můžete číst z nejbližšího sekundárního bodu takto:
from pymongo import ReplicaSetConnection
from pymongo import ReadPreference
db = ReplicaSetConnection('localhost:27017', replicaSet='rs1')['my_db']
db.read_preference = ReadPreference.NEAREST
db.tag_sets = [{'secondaries': 1}]
Aktualizace:
Měli byste si uvědomit, že pokud dojde k volbě a změní se topologie vaší sady replik, budete muset ručně změnit sady tagů tak, aby reprezentovaly nové sekundární prvky.