sql >> Databasteknik >  >> NoSQL >> MongoDB

Hur man konverterar BSON::Timestamp till ruby ​​time och vice versa

Du kan konvertera en BSON::Timestamp till en BSON::ByteBuffer med #to_bson metod.

Du kan sedan konvertera BSON::ByteBuffer till ett heltal (#get_int64 ) som representerar antalet millisekunder sedan epoken.

Använd sedan Time::at för att konvertera det heltal till en Time objekt

date_time = DateTime.new(2021,8,30)
date_time.to_time
#=> 2021-08-30 00:00:00 +0000
date_time.to_time.to_i
#=> 1630281600 
timestamp = BSON::Timestamp.from_bson(date_time.to_bson)
#=> #<BSON::Timestamp:0x00007fffe31da4a8 @seconds=379, @increment=2488994816>
timestamp.to_bson.get_int64 / 1000 
#=> 1630281600
Time.at(timestamp.to_bson.get_int64 / 1000).utc
#=> 2021-08-30 00:00:00 UTC


  1. mongod:fel vid laddning av delade bibliotek:libssl.so.10 libcrypto.so.10

  2. MongoError:kunde inte ansluta till servern [localhost:27017] vid första anslutningen

  3. Redis-nycklar visas inte när du använder Cache-fasad i Laravel

  4. Dumpa Mongo Collection till JSON-format