sql >> Database >  >> NoSQL >> MongoDB

Hoe kan ik datum naar UTC converteren in MongoMapper &Ruby/Rails?

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.



  1. MongoDB De standaard opslag-engine 'wiredTiger' is niet beschikbaar met deze build van mongod + ..no /data/db map..

  2. 5 manieren om de milliseconden van een datum in MongoDB te krijgen

  3. Spring Boot MongoDB-repository instellen

  4. LogicException:zorg ervoor dat de PHP Redis-extensie is geïnstalleerd en ingeschakeld