2
我正在使用Mongo 2.2.3.3 C#驅動程序將一些日期字段作爲元數據寫入GridFS。案件角落是DateTime.MinValue
。這被表示爲Date(-62135596800000)
,這表示自1970年1月1日(mongo doc),這將是C#語法new DateTime(1970,1,1).AddMilliseconds(-62135596800000)
的毫秒數。迄今爲止都很好。Mongo'find'方法不適用於DateTime.MinValue
當查詢不同的日期值db.fs.files.distinct("metadata.lastWriteTimeUtc")
時,我得到上面的值和ISODate("yyyy-MM-ddTHH:mm:ss.fffZ")
格式的一系列ISODates。試圖查詢角落情況下...
檢查平等然而,當(以下無)不工作:
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
沒有?