sql >> Databasteknik >  >> NoSQL >> MongoDB

Hur konverterar man Date till UTC i MongoMapper &Ruby/Rails?

Jag fick det här svaret från Seattle Brigade-gruppen -

===

Jag såg inte start_date definierad i din kod som en nyckel i MongoMapper, så jag antar att du skapar ditt eget datumobjekt, antingen direkt via Ruby eller insvept av Rails. Så vitt jag vet, och någon vänligen rätta mig, datum Mongostores som UTC-tid i millisekunder sedan epok. Så när du definierar en nyckel med en :datemapping i MongoMapper, lindar du ett Time-objekt i Ruby.

Därför, om du vill lagra ett datum inuti Mongo, och det inte skapades av MongoMapper, se till att du skapar ett Time-objekt i UTC. MongoMapper kommer med en Date mixin-metod som heter to_mongo som du kan använda.

>> 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

Men se upp för tidsförändringen.

>> 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

Lycka till.

===

Och genom att använda

Date.to_mongo(start_date) 

det fungerar för mig.



  1. Hur man skapar RedisCacheManager i spring-data 2.0.x

  2. Fel:Kan inte starta klient | mongo-connect express-session

  3. Meteor använda hämta eller hitta i mallhjälpfunktioner?

  4. MongoDB $toDecimal