У меня есть структура документа JobData, в которой хранятся данные на основе времени, начиная с момента 0 до времени t в тиках. И обычно данные представляют собой документ в секунду.
public class JobData
{
long Ticks {get;set;}
double JobValue {get;set;}
}
Для простоты я показываю только один параметр JobValue, но на самом деле это сложный график данных. Мой вопрос: если задано время ввода в тиках, какой запрос будет лучшим для поиска последних данных JobData на основе заданного тика?
Таким образом, если в базе данных есть документ на 1000 тиков, а затем следующий на 2000 тиков, и пользователь хочет найти состояние на 1500 тиках, он/она должен получить в качестве ответа JobData на 1000 тиках.
Запрос, который я использую сейчас:
var jobData = documentSession.Query<JobData>().Where(t => t.Ticks <= 1500).OrderByDescinding(t => t.Ticks).FirstOrDefault();
Это правильный и самый эффективный запрос? У меня есть тысячи этих узлов JobData, и я хочу просто добраться до самого близкого.
Спасибо!