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

Mongodb Læs præferencer

Læsepræferencerne er som følger:

  • PRIMÆR :Forespørgsler sendes til det primære i replikasættet.
  • PRIMARY_PREFERRED :Forespørgsler sendes til den primære, hvis den er tilgængelig, ellers en sekundær.
  • SEKUNDÆR :Forespørgsler er fordelt mellem sekundære. Der opstår en fejl, hvis ingen sekundærer er tilgængelige.
  • SECONDARY_PREFERRED :Forespørgsler er fordelt mellem sekundære eller primære, hvis der ikke er nogen sekundær tilgængelig.
  • NÆRMESTE :Forespørgsler fordeles blandt alle medlemmer.

Så der er nej specifik for den nærmeste sekundær. Du kan opnå dette ved at kombinere NEAREST og tag_sets og tagging af sekundærerne.

Hvis sekundærerne er blevet tagget {'secondaries': 1} du kan læse fra den nærmeste sekundær sådan:

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

Opdatering:

Du skal bemærke, at hvis et valg finder sted, og topologien af ​​dit replikasæt ændrer sig, skal du manuelt ændre tag_sets for at repræsentere de nye sekundære.



  1. MongoDB HostName/URI-konfiguration

  2. Covert RFC3339 DateTime to Date i java

  3. Brug af Meteor-appen på iPad, der blev implementeret til fjernserver med Meteor-up (problem med at oprette forbindelse til mongodb)

  4. Scriptet forsøgte at oprette en global variabel