sql >> データベース >  >> NoSQL >> MongoDB

データの取得元のサーバーのサーバーアドレスを取得する方法

    残念ながら、C#ドライバーのソースコード(およびJavaソースコードで何が行われているかを確認するため)を少し深く掘り下げた後、フェッチの一部として使用された実際のサーバーアドレスは、プライベートメンバーとして列挙子に隠されています(_serverInstance

    特に、MongoCursorEnumeratorというクラスに隠されています。 。残念ながら、それに到達するための「正直な」方法はありません。 .NETリフレクションを使用することもできますが、特に自分が所有していないコードの場合は、一般的にはお勧めできません。ドライバーのカスタムフォークが必要な場合は、それを新しいプロパティとして簡単に追加できます。 ここ に問題を追加することをお勧めします 。

    一般に、MongoDB接続で使用されるインスタンスは、MongoServerInstanceで利用できるため、取得できます。 クラス、Address プロパティ。

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

    ドキュメント

    ただし、あなたの場合は、cursorからも取得できます。 Server経由 プロパティ:

    cursor.Server.Instance.Address.Host
    

    または

    cursor.Server.Instances[] 
    

    カーソルサーバーのドキュメント>

    複数のインスタンスが使用可能な場合、C#ドライバーは興味深いことに例外をスローします。したがって、インスタンスの数がわからない場合は、exceptionを処理する必要があります。 (InvalidOperationException )、または常にInstances[]を使用します 関連するインスタンスを返すプロパティ。




    1. mongoDBでユニオンクエリを作成する方法

    2. マングースでmongodockerイメージに接続できません

    3. MongoDbは、最後から最初に出現したときに配列内のオブジェクトを更新します

    4. RedisのZRANKで同じスコアに対して同じランクを取得するにはどうすればよいですか?