2016-06-27 13 views
2

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?

Antwort

1

Sie benötigen new

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") }) 
hinzufügen
Verwandte Themen