C# 如何让C Mongo驱动程序使用Linq表达式比较DateTime字段?
我正在使用Linq表达式创建一个select查询以传递给MongoDB 我想在集合中查询DateTimePosited<给定日期的文档。repository变量是从IMongoCollection.AsQueryable派生的IQueryable: 在mongo客户端中运行此命令时,它返回0:C# 如何让C Mongo驱动程序使用Linq表达式比较DateTime字段?,c#,mongodb,C#,Mongodb,我正在使用Linq表达式创建一个select查询以传递给MongoDB 我想在集合中查询DateTimePosited
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") } }
}]);