Ik kreeg dit antwoord van de Seattle Brigade-groep -
===
Ik zag start_date niet gedefinieerd in je code als een sleutel in MongoMapper, dus ik neem aan dat je je eigen datumobject maakt, ofwel rechtstreeks via Ruby, ofwel verpakt door Rails. Voor zover ik weet, en iemand corrigeert me alstublieft, dateert Mongostores als UTC-tijd in milliseconden sinds het tijdperk. Dus wanneer u akey definieert met een :date-toewijzing in MongoMapper, wikkelt u een Time-object in Ruby.
Als u daarom een datum in Mongo wilt opslaan en deze niet door MongoMapper is gemaakt, zorg er dan voor dat u een Time-object maakt in UTC. MongoMapper wordt geleverd met een Date-mix-methode genaamd to_mongo die u kunt gebruiken.
>> 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
Maar kijk uit voor de tijdsverandering.
>> 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
Veel succes.
===
En door gebruik te maken van
Date.to_mongo(start_date)
het werkt voor mij.