MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Предпочитания за четене на Mongodb

Предпочитанията за четене са както следва:

  • ОСНОВЕН :Заявките се изпращат до основния на набора реплики.
  • PRIMARY_PREFERRED :Заявките се изпращат до основния, ако има такъв, в противен случай до вторичен.
  • ВТОРИЧЕН :Заявките се разпределят между вторичните. Появява се грешка, ако няма налични вторични.
  • SECONDARY_PREFERRED :Заявките се разпределят между вторични или първични, ако няма налични вторични.
  • НАЙ-БЛИЗКИ :Запитванията се разпределят между всички членове.

Така че нема специфичен за най-близкия втори. Можете да постигнете това чрез комбиниране на NEAREST и tag_sets и маркиране на вторичните.

След това, ако вторичните са маркирани {'secondaries': 1} можете да четете от най-близкия вторичен елемент така:

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

Актуализация:

Трябва да имате предвид, че ако настъпи избор и топологията на вашия набор от реплики се промени, тогава ще трябва ръчно да промените tag_sets, за да представляват новите вторични.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Нова функция за агрегиране с драйвер Mongo 3.2, използвайки Java

  2. Най-добрият начин за моделиране на система за гласуване в MongoDB

  3. Намерете отделни стойности, групирани по друго поле mongodb

  4. Как да получите достъп до MongoDB Instance 4.2?

  5. не може да актуализира документ чрез 'findById' и save() с обещание