Есть ли эффективный способ получения первого документа из запроса? Обычно это будет использовать FirstOrDefault()
с коллекциями LINQ или TOP
в SQL.DocumentDb: Получить первый документ
Say коллекция выглядит примерно так:
{
name: "John",
position: 3
},
{
name: "Mary",
position: 1
},
{
name: "Peter",
position: 2
}
Мне нужно получить только один документ с наивысшим положением значения. То есть документ «Мэри» в этом случае.
Использование # SDK C, я бы выполнить что-то вроде этого:
Client.CreateDocumentQuery<T>(Collection.DocumentsLink)
.Where(somethingOtherCriteria);
.OrderByDescending(x => x.Position)
.AsEnumerable()
.FirstOrDefault());
Это возвращает все документы в коллекции (после применения соответствующего фильтра), а затем извлечение первый из списка. Это все равно может привести к появлению тысяч ненужных документов по проводам.
Невозможно выполнить FirstOrDefault()
на сервере?