MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Как да конвертирате дата в UTC в MongoMapper &Ruby/Rails?

Получих този отговор от групата на Сиатълската бригада -

===

Не видях 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) 

работи за мен.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Невалиден ns при свързване към mongodb сървър

  2. Как да премахнете индекс с помощта на Mongoose

  3. Mongo Query е неуспешно с код за грешка 13 и съобщение за грешка „не е оторизирано“

  4. Запазване на референтно поле mongoengine

  5. Група за агрегиране на Mongodb по логически или?