Tuto odpověď jsem dostal od skupiny Seattle Brigade -
===
Neviděl jsem start_date definované ve vašem kódu jako klíč v MongoMapper, takže předpokládám, že vytváříte svůj vlastní objekt data, buď přímo přes Ruby, nebo zabalený do Rails. Pokud vím a někdo mě prosím opravte, data Mongostores jsou od epochy uváděna jako čas UTC v milisekundách. Takže když definujete akey pomocí mapování :date v MongoMapper, zabalíte objekt Time do Ruby.
Pokud tedy chcete do Mongo uložit datum, které nebylo vytvořeno MongoMapperem, ujistěte se, že jste vytvořili objekt Time v UTC. MongoMapper přichází s metodou Date mixin nazvanou to_mongo, kterou můžete použít.
>> 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
Ale pozor na změnu času.
>> 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
Hodně štěstí.
===
A pomocí
Date.to_mongo(start_date)
funguje to pro mě.