C# 使用linq和mongodb在用户指定的日期之间选择文档
我是MongoDB的新手,遇到了一个查询问题。查询尝试查找两个日期时间值之间的所有文档。我以前能够使用不同的数据库模式运行类似的查询并获得所需的结果。通过对我当前的数据库模式应用相同的查询,查询无法工作。 查询如下:C# 使用linq和mongodb在用户指定的日期之间选择文档,c#,linq,mongodb,datetime,mongodb-.net-driver,C#,Linq,Mongodb,Datetime,Mongodb .net Driver,我是MongoDB的新手,遇到了一个查询问题。查询尝试查找两个日期时间值之间的所有文档。我以前能够使用不同的数据库模式运行类似的查询并获得所需的结果。通过对我当前的数据库模式应用相同的查询,查询无法工作。 查询如下: var query = ( from t in rdb.TimeStampsCollection.AsQueryable() where t.dt > lowDat
var query =
(
from t in rdb.TimeStampsCollection.AsQueryable()
where t.dt > lowDate && t.dt < highDate
select t.rbt_List
);
正如本文开头所提到的,我之前已经能够通过设置DateTime值获得所需的结果,如上所示。但是,在我当前的数据库结构中,这不起作用 所以可能有更好的方法来解决这个问题,但这对我来说是个好办法
DateTime ownLow = new DateTime(2015, 3, 28, 21, 28, 13, 0);
DateTime ownHigh = new DateTime(2015, 3, 28, 21, 28, 20, 0);
string stringLow = ownLow.ToString("yyyy-MM-ddTHH:mm:ss.fffffffZ");
string stringHigh = ownHigh.ToString("yyyy-MM-ddTHH:mm:ss.fffffffZ");
DateTime lowDate = Convert.ToDateTime(stringLow);
DateTime highDate = Convert.ToDateTime(stringHigh);
为了让这个查询正常工作,我必须创建DateTime,将其解析为字符串,然后将其转换回DateTime值
// 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 ownLow = new DateTime(2015, 3, 28, 21, 28, 13, 0);
DateTime ownHigh = new DateTime(2015, 3, 28, 21, 28, 20, 0);
string stringLow = ownLow.ToString("yyyy-MM-ddTHH:mm:ss.fffffffZ");
string stringHigh = ownHigh.ToString("yyyy-MM-ddTHH:mm:ss.fffffffZ");
DateTime lowDate = Convert.ToDateTime(stringLow);
DateTime highDate = Convert.ToDateTime(stringHigh);