RavenDB базирана на времето заявка

Имам документна структура 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 възли и искам просто да стигна до този, който е най-близкият.

Благодаря!


person Ahmad    schedule 25.11.2011    source източник


Отговори (1)


Ахмад, да, това е начинът да стане. И щеше да е много бързо.

person Ayende Rahien    schedule 27.11.2011