MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

Tùy chọn Mongodb Read

Các tùy chọn đọc như sau:

  • CHÍNH TẢ :Các truy vấn được gửi đến chính của tập hợp bản sao.
  • PRIMARY_PREFERRED :Các truy vấn được gửi đến chính nếu có, nếu không sẽ là phụ.
  • THỨ HAI :Các truy vấn được phân phối giữa các thư ký thứ hai. Sẽ xảy ra lỗi nếu không có bản phụ.
  • SECONDARY_PREFERRED :Các truy vấn được phân phối giữa các thứ hai hoặc chính nếu không có thứ hai.
  • GẦN NHẤT :Các truy vấn được phân phối cho tất cả các thành viên.

Vì vậy, có không cụ thể cho gần nhất sơ trung. Bạn có thể đạt được điều này bằng cách kết hợp NEAREST và tag_sets và gắn thẻ các thư thứ hai.

Sau đó, nếu các thư thứ hai đã được gắn thẻ {'secondaries': 1} bạn có thể đọc từ trường phụ gần nhất như vậy:

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

Cập nhật:

Bạn nên lưu ý rằng nếu một cuộc bầu cử xảy ra và cấu trúc liên kết của tập bản sao của bạn thay đổi thì bạn phải thay đổi tag_sets theo cách thủ công để đại diện cho các tập thứ hai mới.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Giữ trường trong nhóm mongodb bởi

  2. Cách thay thế một phần tử trong trường mảng trong mongodb

  3. Làm cách nào để thêm người dùng quản trị vào Mongo trong phiên bản 2.6?

  4. DBRefs (tham chiếu Tài liệu Mongo) không được tìm nạp một cách háo hức

  5. MongoDB Spark Connector py4j.protocol.Py4JJavaError:Đã xảy ra lỗi khi gọi o50.load