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