sql >> Database teknologi >  >> NoSQL >> MongoDB

Sådan konverteres BSON::Timestamp til rubintid og omvendt

Du kan konvertere en BSON::Timestamp til en BSON::ByteBuffer ved hjælp af #to_bson metode.

Du kan derefter konvertere BSON::ByteBuffer til et heltal (#get_int64 ), der repræsenterer antallet af millisekunder siden epoken.

Brug derefter Time::at at konvertere dette heltal til en Tid 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. Mongoose:hvordan opdaterer man *alle* personer, der matcher en betingelse?

  2. Sådan forbinder du Laravel-webstedet med mongoDB-atlas

  3. hvordan man sammenligner to felter i et dokument i pipeline aggregering (mongoDB)

  4. Redis scan-kommando match-indstilling virker ikke i Python