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

Cách lấy địa chỉ máy chủ của máy chủ mà dữ liệu được lấy từ

Thật không may, sau khi tìm hiểu sâu hơn một chút thông qua mã nguồn trình điều khiển C # (và mã nguồn Java để xem nó đang làm gì), địa chỉ máy chủ thực tế được sử dụng như một phần của tìm nạp bị ẩn trong Enumerator như một thành viên riêng tư. (_serverInstance ).

Đặc biệt, nó được ẩn trong một lớp có tên là MongoCursorEnumerator . Thật không may, không có một cách "trung thực" để đạt được nó. Tôi cho rằng bạn có thể sử dụng phản chiếu .NET để truy cập nó, nhưng đó thường không phải là một ý tưởng hay, đặc biệt là với mã bạn không sở hữu. Nếu bạn muốn có một ngã ba tùy chỉnh của trình điều khiển, bạn có thể dễ dàng thêm nó làm thuộc tính mới. Bạn có thể muốn thêm sự cố tại đây .

Nói chung, bạn có thể lấy các phiên bản được sử dụng bởi kết nối MongoDB, vì chúng có sẵn trên MongoServerInstance lớp, Address tài sản.

var client = new MongoClient();
var server = client.GetServer();
// server.Instance.Address

Tài liệu

Tuy nhiên, trong trường hợp của bạn, bạn cũng có thể lấy nó từ cursor qua Server tài sản:

cursor.Server.Instance.Address.Host

hoặc

cursor.Server.Instances[] 

Tài liệu về máy chủ con trỏ

Trình điều khiển C # ném và ngoại lệ một cách thú vị khi có nhiều Phiên bản. Vì vậy, nếu bạn không biết có bao nhiêu trường hợp, bạn cần phải xử lý exception (InvalidOperationException ), hoặc luôn sử dụng Instances[] thuộc tính để trả về các phiên bản được liên kết.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. mongoimport CSV với pymongo

  2. Tập hợp con mảng trong đường dẫn khung tổng hợp

  3. Ứng dụng khách MongoDB ném một FileNotFoundException trong mscorlib

  4. So sánh sự khác biệt mongo trên hai bộ sưu tập

  5. Mongo chỉ mục duy nhất không phân biệt chữ hoa chữ thường