C# Mongo';查找';方法不适用于DateTime.MinValue
我正在使用Mongo2.2.3.3C#驱动程序将一些日期字段作为元数据写入GridFS。角落大小写为C# Mongo';查找';方法不适用于DateTime.MinValue,c#,mongodb,mongodb-.net-driver,gridfs,C#,Mongodb,Mongodb .net Driver,Gridfs,我正在使用Mongo2.2.3.3C#驱动程序将一些日期字段作为元数据写入GridFS。角落大小写为DateTime.MinValue。它被表示为Date(-62135596800000),它表示自1970年1月1日以来的毫秒数(),这将是new DateTime(1970,1,1)。addmillizes(-62135596800000),使用C#语法。到目前为止一切都很好 查询不同的日期值db.fs.files.distinct(“metadata.lastWriteTimeUtc”)时,我
DateTime.MinValue
。它被表示为Date(-62135596800000)
,它表示自1970年1月1日以来的毫秒数(),这将是new DateTime(1970,1,1)。addmillizes(-62135596800000)
,使用C#语法。到目前为止一切都很好
查询不同的日期值db.fs.files.distinct(“metadata.lastWriteTimeUtc”)
时,我会得到上面的值和一系列ISODates,格式为ISODate(“yyyy-MM-ddTHH:MM:ss.fffZ”)
。但是,在尝试查询拐角案例时
检查相等性(以下无)不起作用:
db.fs.files.find({"metadata.lastWriteTimeUtc": Date(-62135596800000)})
db.fs.files.find({"metadata.lastWriteTimeUtc": Date("0001-01-01T00:00:00") })
db.fs.files.find({"metadata.lastWriteTimeUtc": Date("0001-01-01T00:00:00") })
db.fs.files.find({"metadata.lastWriteTimeUtc": ISODate("0001-01-01T00:00:00.000Z") })
db.fs.files.find({"metadata.lastWriteTimeUtc": ISODate("0001-01-01T00:00:00Z") })
db.fs.files.find({"metadata.lastWriteTimeUtc": ISODate("0001-01-01") })
与另一个值进行比较不适用于日期构造函数
db.fs.files.find({"metadata.lastWriteTimeUtc": {$lt: Date(0)} })
然而,它与ISODate的一个
db.fs.files.find({"metadata.lastWriteTimeUtc": {$lt: ISODate("1970-01-01T00:00:00.000Z")} })
比较法是一种变通方法,我不喜欢它。有人知道为什么
distinct
方法会找到DateTime.MinValue
而find
没有找到吗?您需要添加新的
db.fs.files.find({"metadata.lastWriteTimeUtc": new Date(-62135596800000)})
db.fs.files.find({"metadata.lastWriteTimeUtc": new Date(0)})
db.fs.files.find({"metadata.lastWriteTimeUtc": new Date("0001-01-01T00:00:00") })