2017-10-10 5 views
0

を改善していません、私もこれを試してみましたモンゴにインデックスを追加すると、私は私が見つけるのアクションを実行しようとしたとき、私は、しかし、うまく動作するいくつかのインデックスを作成しているのMongoDB 3.4</p> <p>に中継アプリケーションを構築していたクエリのパフォーマンス

IMongoCollection<FlightPair> FlightsPair = _db.GetCollection<FlightPair>("Flights"); 
FlightsPair.Indexes.CreateOne(Builders<FlightPair>.IndexKeys.Ascending(_ => _.Source.ExternalId).Ascending(_ => _.Source.HashCode)); 

public async Task<FlightPair> GetFlightByHashCodeAndId(string hashCode,string id) 
{ 
    return await FlightsPair.Find(x => x.Source.HashCode == hashCode && x.Source.ExternalId == id).FirstOrDefaultAsync(); 
} 

:アクションは、私は、私は上の私の検索クエリを実行する二つのフィールドが、まだ変更なしを含む化合物のインデックスを作成し、永遠に実行されます、これは私がこれまで試してみましたものです

var uniqueIdIndex = new CreateIndexOptions(); 
    uniqueIdIndex.Unique = false; 
    uniqueIdIndex.Sparse = true; 
    FlightsPair.Indexes.CreateOne(Builders<FlightPair>.IndexKeys.Ascending(_ => _.Source.ExternalId).Ascending(_ => _.Source.HashCode), uniqueIdIndex); 

しかし運がありません - GetFlightByHashCodeAndIdは決して終わりません、何が欠けていますか?

+0

恐らくそれはあなたがそれを作ることができるように最適化されています。私はあなたのmongoインスタンスが非常に大きいと思いますか? – Liam

+0

'.explain()'とともにシェルからクエリを実行し、インデックスが使用されているかどうかを確認してください。 –

+0

実際には250のドキュメントではありません。何が問題なのかよく分からないx.Source.HashCodeの別のインデックスがあります –

答えて

0

私は問題を見つけました、それは非同期タスクで、何もmongoに関係なく、あなたの返信のおかげで!

関連する問題

 関連する問題