MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

Bagaimana cara mengubah Tanggal menjadi UTC di MongoMapper &Ruby/Rails?

Saya mendapat jawaban ini dari grup Brigade Seattle -

===

Saya tidak melihat start_date didefinisikan dalam kode Anda sebagai kunci di MongoMapper, jadi saya akan menganggap Anda membuat objek tanggal Anda sendiri, baik secara langsung melalui Ruby, atau dibungkus oleh Rails. Sejauh yang saya tahu, dan seseorang tolong perbaiki saya, tanggal Mongostore sebagai waktu UTC dalam milidetik sejak zaman. Jadi ketika Anda mendefinisikan akey dengan pemetaan :date di MongoMapper, Anda membungkus objek Time di Ruby.

Oleh karena itu, jika Anda ingin menyimpan tanggal di dalam Mongo, dan tanggal tersebut tidak dibuat oleh MongoMapper, pastikan Anda membuat objek Waktu di UTC. MongoMapper dilengkapi dengan metode mixin Tanggal yang disebut to_mongo yang dapat Anda gunakan.

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

Tapi hati-hati dengan perubahan waktu.

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

Semoga berhasil.

===

Dan dengan menggunakan

Date.to_mongo(start_date) 

itu berhasil untuk saya.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Cara membuat pengguna di MongoDB v3.0.5

  2. Bagaimana cara menghapus koleksi MongoDB formulir TTL?

  3. Derived Query tidak bekerja dengan DBRef

  4. Buat _id pada subdokumen di mongoimport --jsonArray

  5. Peringatan penghentian MongoDB saat menggunakan Mongoose