Как я могу сравнить 2 даты в операторе Where при использовании NoRM для MongoDB на C #? - PullRequest
0 голосов
/ 04 сентября 2011

У меня есть стол в Монго.Одним из полей является DateTime.Я хотел бы иметь возможность получить все записи за один день (т. Е. 3 сентября 2011 г.).

Если я сделаю что-то вроде этого:

 var list = (from c in col
             where c.PublishDate == DateTime.Now
             select c).ToList();

Тогда это не работает, потому что использует время в сравнении.Обычно я бы просто сравнил ToShortDateString (), но NoRM не позволяет мне использовать это.

Мысли?

Дэвид

1 Ответ

2 голосов
/ 07 сентября 2011

Лучший способ справиться с этим, как правило, состоит в том, чтобы рассчитать время начала и окончания даты для рассматриваемой даты, а затем запросить значения в этом диапазоне.

var start = DateTime.Now.Date;
var end = start.AddDays(1);
...

Но вам также рекомендуется перейти на официальный драйвер C # сейчас. Вам также следует использовать дату UTC в вашей базе данных (но это становится более сложным).

...