MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

Mongodb Leggi le preferenze

Le preferenze di lettura sono le seguenti:

  • PRIMARIO :le query vengono inviate al primario del set di repliche.
  • PRIMARY_PREFERRED :le query vengono inviate al primario se disponibile, altrimenti a un secondario.
  • SECONDARIE :le query sono distribuite tra le secondarie. Viene generato un errore se non sono disponibili secondari.
  • SECONDARY_PREFERRED :le query sono distribuite tra i secondari o il primario se non è disponibile un secondario.
  • PIÙ VICINO :le query vengono distribuite tra tutti i membri.

Quindi non c'è no uno specifico per il più vicino secondario. Puoi ottenere questo risultato combinando NEAREST e tag_sets e taggare le secondarie.

Quindi, se i secondari sono stati taggati {'secondaries': 1} puoi leggere dal secondario più vicino in questo modo:

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}]

Aggiornamento:

Tieni presente che se si verifica un'elezione e la topologia del set di repliche cambia, dovresti modificare manualmente i tag_set per rappresentare i nuovi secondari.