У меня есть следующие функции Linq:Монго, используйте TotalMilliseconds в Linq запрос
TimeSpan lInterval = aEndTime - aBeginTime;
int lIntervalInt = (int)Math.Round(lInterval.TotalMilliseconds/(30*60*1000));
var meh = lCollection.Aggregate()
.Match(lValue => lValue.Tag == LTag._id)
.Match(lValue => lValue.TimeStamp >= aBeginTime)
.Match(lValue => lValue.TimeStamp <= aEndTime)
.Group(lValue => new {Period = (lValue.TimeStamp-aBeginTime).TotalMilliseconds/lIntervalInt, TimeStamp = lValue.TimeStamp }, g =>
new
{
Key = g.Key,
avgValue = g.Average(x => x.Value)
})
.Project(r => new cValueDouble()
{
TimeStamp = r.Key.TimeStamp,
Tag = LTag._id,
Value = r.avgValue
});
Моя коллекция выглядит следующим образом:
ObjectId _id;
DateTime TimeStamp;
ObjectId Tag;
double Value;
То, что я пытаюсь сделать, это агрегировать значения через специфические пользовательский временной интервал. Значения, например, регистрируются каждые две минуты, но я хочу получить данные в среднем за 30 минут. Но проблема в том, что драйвер mongo не поддерживает команду timespan.TotalMilliseconds
. Я получаю следующее сообщение об ошибке при попытке запустить код:
Необработанное исключение типа «System.NotSupportedException» произошло в MongoDB.Driver.dll
Дополнительная информация: TotalMilliseconds Член типа System.TimeSpan в дерево выражений ({document} {TimeStamp} - 1/1/2010 12:00:00 AM) .TolalMilliseconds не может быть переведено.
Есть ли другая команда, которую я могу попытаться сделать? Или, возможно, совершенно другой подход. Я бы предпочел сделать агрегацию в монго, а не локально на машине.
EDIT Не могу ли я каким-либо образом преобразовать временную метку документа mongo в какой-то временный формат. Мне нужно иметь постоянную ссылку на период времени.
Как преобразовать его в двойную перед рукой? Мне нужно рассчитать, что такое временная метка конкретного документа. Будет ли бросок, чтобы удвоить, просто работать там? – blackwolfsa
На стороне, префиксы обозначают, откуда происходит переменная, l = объявлено локально, a = аргумент. Его стандарт кодирования, и он упрощает кодирование, а также считывает код. – blackwolfsa