Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何让C Mongo驱动程序使用Linq表达式比较DateTime字段?_C#_Mongodb - Fatal编程技术网

C# 如何让C Mongo驱动程序使用Linq表达式比较DateTime字段?

C# 如何让C Mongo驱动程序使用Linq表达式比较DateTime字段?,c#,mongodb,C#,Mongodb,我正在使用Linq表达式创建一个select查询以传递给MongoDB 我想在集合中查询DateTimePosited

我正在使用Linq表达式创建一个select查询以传递给MongoDB

我想在集合中查询DateTimePosited<给定日期的文档。repository变量是从IMongoCollection.AsQueryable派生的IQueryable:

在mongo客户端中运行此命令时,它返回0:

db.getCollection('somecollection').aggregate([{
    "$match" : { "DateTimePosted" : { "$lt" : "1988-02-01T00:00:00-06:00" } }
}]);
但如果我这样修改查询:

db.getCollection('somecollection').aggregate([{
    "$match" : { "DateTimePosted" : { "$lt" : ISODate("1988-02-01T00:00:00-06:00") } }
}]);
它返回结果


你能告诉我我做错了什么吗?

我发现了问题所在:我们正在将日期时间值保存为字符串


我必须以字符串形式传入一个有效的日期时间值,以便进行比较。

如何设置repository.Query属性?在这种情况下,您可能正在进行字符串比较,而不是日期比较。
db.getCollection('somecollection').aggregate([{
    "$match" : { "DateTimePosted" : { "$lt" : "1988-02-01T00:00:00-06:00" } }
}]);
db.getCollection('somecollection').aggregate([{
    "$match" : { "DateTimePosted" : { "$lt" : ISODate("1988-02-01T00:00:00-06:00") } }
}]);