2017-04-24 10 views
0

.Netドライババージョン2.4を使用しています。コレクションのインデックスを確認する方法が見つかりません。私はインデックスを作成して読む方法Mongodb C#

collection.EnsureIndex(keys, options) 

は私が私の現在のドライバのバージョンとの方法を見つけることができませんやって人を見てきましたシェル

​​

経由でそれを行うことができるようです。

私は

var index = Builders<myType>.IndexKeys.Geo2DSphere("Location.Coordinates"); 
collection.Indexes.CreateOne(index); 

は、今私は1つのインデックスexists.IがBsonDocumentが、直面している問題として、私のインデックスを返すこのクエリを使用している場合を確認するインデックスを作成するために働く、次のコードを見つけ UPDATEそのBsonDocumentをデシリアライズします。 それは別のインデックスが異なるデータ型を持っているので、私は、このオブジェクトのキープロパティの問題を抱えて

internal class MongoDbIndex 
    { 
     public int v { get; set; } 

     public string name { get; set; } 

     public string ns { get; set; } 

     public Dictionary<object,object> key { get; set; } 

    } 

をデシリアライズするために以下のクラスを使用していますシェルで

[ 
     { 
      "v" : 2, 
      "key" : { 
       "_id" : 1 
      }, 
      "name" : "_id_", 
      "ns" : "mydb.myCollection" 
     } 
    ] 

を、次のオブジェクトを返します。

+0

これは、レガシードライバであるドライババージョン2.4.3 – Aarif

+0

では使用できません。私はそれをダウングレードする必要があるため – Aarif

答えて

1

最後に私がすでにあれば、それは重複したインデックスを作成しません、残りの時間、それは最初にインデックスを作成します、これを実行することにより、

var index = Builders<MyCollection>.IndexKeys.Geo2DSphere("Location.Coordinates"); 
db.MyCollection.Indexes.CreateOne(index); 

以下にすることでジオインデックスを確保することができますよ存在する。

EnsureIndex最新バージョンのmongodb C#Driverでは、この方法は使用できません。

関連する問題