有时,FindOne花费的时间超过一秒=> “_keywordRepo.GetKeyword 1034 ms”。这是生产代码的例子。
以下是DAL的代码:KeywordRepository:
public async Task<Keyword> GetKeyword(string keywordName)
{
return await MongoClientWrapper.FindOne<Keyword>(k => k.KeywordName == keywordName).ConfigureAwait(false);
}
MongoClientWrapper:
public static async Task<T> FindOne<T>(Expression<Func<T, bool>> memberExpression, FindOptions<T> findOptions = null)
{
var coll = GetCollection<T>();
if (findOptions == null)
findOptions = new FindOptions<T>();
findOptions.Limit = 1;
IAsyncCursor<T> task = await coll.FindAsync(memberExpression, findOptions).ConfigureAwait(false);
return await task.FirstOrDefaultAsync().ConfigureAwait(false);
}
mongo中确实存在“KeywordName”的索引。 有什么不对吗?