Я новичок в MongoDB, и у меня возникла проблема с запросом. Запрос пытается найти все документы между двумя значениями DateTime. Я ранее мог запускать аналогичный запрос с желаемым результатом, однако с другой схемой базы данных. Применяя тот же запрос к моей текущей схеме базы данных, запрос не работает. Запрос выглядит следующим образом:Выбор документов между указанными пользователем датами с использованием linq с mongodb
var query =
(
from t in rdb.TimeStampsCollection.AsQueryable()
where t.dt > lowDate && t.dt < highDate
select t.rbt_List
);
rdb.TimeStampsCollection отображается в C# класс называется TimeStamp. За исключением BSonObjectId, класс содержит DateTime и список объектов из класса RobotTimeStamps.
public class TimeStamp
{
public BsonObjectId Id;
public DateTime dt;
public List<RobotTimeStamp> rbt_List;
public TimeStamp(DateTime date)
{
this.dt = date;
this.rbt_List = new List<RobotTimeStamp>();
}
}
public class RobotTimeStamp
{
public BsonObjectId Id;
public int robotID;
public int productionCellId;
public DateTime timeStamp;
public double p1;
public double p2;
public double p3;
public double q1;
public double q2;
public double q3;
public double s1;
public double s2;
public double s3;
public double pf1;
public double pf2;
public double pf3;
// constructor
}
Так что запрос, который я пытаюсь запустить, не работает. Он никогда не возвращает никаких документов из моей коллекции. В настоящее время DateTime lowDate и highDate устанавливаются с точностью до нескольких секунд. Забавно, если я устанавливаю DateTime с помощью встроенного DateTime.Now, запрос работает.
// Not working
DateTime lowDate = new DateTime(2015,3,26,22,27,0);
DateTime highDate = new DateTime(2015,3,26,22,30,0);
//working
DateTime lowDate = DateTime.Now.AddMinutes(-10);
DateTime highDate = DateTime.Now.AddMinutes(-1);
Как уже говорилось в начале поста, я уже был в состоянии получить желаемый результат, установив значения DateTime, как показано выше. Однако с моей текущей структурой базы данных это не работает.