Ich habe diese Antwort von der Seattle Brigade-Gruppe erhalten -
===
Ich habe nicht gesehen, dass start_date in Ihrem Code als Schlüssel in MongoMapper definiert ist, also gehe ich davon aus, dass Sie Ihr eigenes Datumsobjekt erstellen, entweder direkt über Ruby oder von Rails umschlossen. Soweit ich weiß, und bitte korrigiert mich jemand, datiert Mongostores als UTC-Zeit in Millisekunden seit der Epoche. Wenn Sie also einen Schlüssel mit einer :date-Zuordnung in MongoMapper definieren, packen Sie ein Time-Objekt in Ruby ein.
Wenn Sie also ein Datum in Mongo speichern möchten und es nicht von MongoMapper erstellt wurde, stellen Sie sicher, dass Sie ein Time-Objekt in UTC erstellen. MongoMapper enthält eine Date-Mixin-Methode namens to_mongo, die Sie verwenden können.
>> Time.now.utc
=> Fri Jan 28 03:47:50 UTC 2011
>> require 'date'
=> true
>> date = Date.today
=> #<Date: 4911179/2,0,2299161>
>> Time.utc(date.year, date.month, date.day)
=> Thu Jan 27 00:00:00 UTC 2011
>> require 'rubygems'
=> true
>> require 'mongo_mapper'
=> true
>> Date.to_mongo(date)
=> Thu Jan 27 00:00:00 UTC 2011
Aber achten Sie auf die Zeitumstellung.
>> Date.to_mongo(Time.now)
=> Thu Jan 27 00:00:00 UTC 2011
>> Date.to_mongo(Time.now.utc)
=> Fri Jan 28 00:00:00 UTC 2011
Viel Glück.
===
Und mit
Date.to_mongo(start_date)
bei mir funktioniert es.