Я пишу очень простой запрос, который просто получает документ из коллекции в соответствии с его уникальным идентификатором. После некоторой фрустрации (я новичок в монго и модели программирования async/await), я понял это:
IMongoCollection<TModel> collection = // ...
FindOptions<TModel> options = new FindOptions<TModel> { Limit = 1 };
IAsyncCursor<TModel> task = await collection.FindAsync(x => x.Id.Equals(id), options);
List<TModel> list = await task.ToListAsync();
TModel result = list.FirstOrDefault();
return result;
Это работает, отлично! Но я продолжаю видеть ссылки на метод "Найти", и я это продумал:
IMongoCollection<TModel> collection = // ...
IFindFluent<TModel, TModel> findFluent = collection.Find(x => x.Id == id);
findFluent = findFluent.Limit(1);
TModel result = await findFluent.FirstOrDefaultAsync();
return result;
Как оказалось, это тоже работает, отлично!
Я уверен, что есть важная причина, по которой у нас есть два разных способа достижения этих результатов. В чем разница между этими методологиями и почему я должен выбирать один из них?