向mongo添加索引不会提高查询性能

时间:2017-10-10 08:17:29

标签: c# mongodb

我正在构建一个继续使用MongoDB 3.4的应用程序

我已经创建了一些工作正常的索引,但是,当我尝试运行查找操作时,操作会永远运行,然后我创建了一个复合索引,其中包含我运行查找查询的两个字段,但仍然没有更改,这是我到目前为止所尝试的:

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永远不会结束,我缺少什么?

1 个答案:

答案 0 :(得分:0)

我发现了问题,这是异步任务,没有任何与mongo相关的内容,感谢您的回复!