MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

Cara Mendapatkan Alamat Server dari server tempat data diambil

Sayangnya, setelah menggali sedikit lebih dalam melalui kode sumber driver C# (dan kode sumber Java untuk melihat apa yang dilakukannya), alamat server sebenarnya yang digunakan sebagai bagian dari pengambilan disembunyikan di Enumerator sebagai anggota pribadi (_serverInstance ).

Secara khusus, itu disembunyikan di kelas yang disebut MongoCursorEnumerator . Sayangnya, tidak ada cara "jujur" untuk mencapainya. Anda bisa menggunakan .NET refleksi saya kira untuk sampai ke sana, tapi itu umumnya bukan ide yang baik, terutama dengan kode yang tidak Anda miliki. Jika Anda ingin memiliki garpu khusus untuk driver, Anda dapat dengan mudah menambahkannya sebagai properti baru. Anda mungkin ingin menambahkan masalah di sini .

Secara umum, Anda bisa mendapatkan instance yang digunakan oleh koneksi MongoDB, karena tersedia di MongoServerInstance kelas, Address properti.

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

Dokumentasi

Namun, dalam kasus Anda, Anda juga bisa mendapatkannya dari cursor melalui Server properti:

cursor.Server.Instance.Address.Host

atau

cursor.Server.Instances[] 

Dokumentasi Server Kursor

Driver C# secara menarik melempar dan mengecualikan ketika lebih dari satu Instance tersedia. Jadi, jika Anda tidak tahu berapa banyak instance yang ada, Anda juga perlu menangani exception (InvalidOperationException ), atau selalu gunakan Instances[] properti untuk mengembalikan instance terkait.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Mengapa Mongoose memiliki skema dan model?

  2. MongoDB :menanyakan dokumen dengan dua bidang yang sama, $match dan $eq

  3. Cara terbaik untuk melakukan pencarian teks lengkap di MongoDB dan Mongoose

  4. Jackson tidak dapat melakukan deserialize objek MongoDB yang melewati REST

  5. Jumlahkan dalam dokumen bersarang MongoDB