Получих този отговор от групата на Сиатълската бригада -
===
Не видях start_date дефиниран във вашия код като ключ в MongoMapper, така че ще предположа, че създавате свой собствен обект за дата, или директно чрез Ruby, или обвит от Rails. Доколкото знам и ако някой ме поправи, Mongostores датира като UTC време в милисекунди от епохата. Така че, когато дефинирате akey с :date съпоставяне в MongoMapper, вие опаковате обект Time в Ruby.
Следователно, ако искате да съхраните дата вътре в Mongo и тя не е създадена от MongoMapper, уверете се, че сте създали обект Time в UTC. MongoMapper идва с метод за смесване на дати, наречен to_mongo, който можете да използвате.
>> 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
Но внимавайте за смяната на времето.
>> 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
Успех.
===
И чрез използване на
Date.to_mongo(start_date)
работи за мен.