Ich schreibe einige Datum Felder als Metadaten zu GridFS mit dem Mongo 2.2.3.3 C# -Treiber. Eckgehäuse ist DateTime.MinValue
. Dies wird als Date(-62135596800000)
dargestellt, die die Anzahl der Millisekunden seit dem 1. Januar 1970 (mongo doc) darstellt, die new DateTime(1970,1,1).AddMilliseconds(-62135596800000)
in C# -Syntax wäre. Alles gut bis jetzt.Mongo 'Find' Methode funktioniert nicht für DateTime.MinValue
Bei Abfrage für unterschiedliche Datumswerte db.fs.files.distinct("metadata.lastWriteTimeUtc")
, bekomme ich den Wert über und eine Reihe von ISODates im Format. Wenn jedoch für die Ecke Fall ...
Überprüfung auf Gleichheit (keine unten) abzufragen versuchen nicht funktioniert:
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") })
auf einen anderen Wert Vergleicht man nicht mit dem Datum Konstruktor funktioniert
db.fs.files.find({"metadata.lastWriteTimeUtc": {$lt: Date(0)} })
noch tut es mit dem isodate ein
db.fs.files.find({"metadata.lastWriteTimeUtc": {$lt: ISODate("1970-01-01T00:00:00.000Z")} })
der Vergleich Ansatz ist ein Workaround und ich mag es nicht. Wer weiß, warum die distinct
Methode DateTime.MinValue
und find
nicht findet?