DauleDK
DauleDK

Reputation: 3433

How to convert BSON Timestamp from Mongo changestream to a date in javascript?

I already have a SO question and answer on how to convert BSON Timestamp in a MongoDB aggregation, but now I have a situation where I would like to convert in node.js.

So just to repeat. My goal is to convert a "Timestamp" datatype to a javascript date, without doing it in an aggregation - is this possible?

enter image description here

Upvotes: 1

Views: 813

Answers (1)

Joe
Joe

Reputation: 28336

If the BSON library you are using provides Timestamp type, you can use its getTime method to return the seconds, and create a date from that:

Date(object.clusterTime.getTime())

If you don't have that function available, the timestamp is a 64-bit value where the high 32-bits are the seconds since epoch, and the low 32-bits are a counter.

Bitshift the value 32 bits right or divide by 2^32 to get the seconds:

Date(object.clusterTime/Math.pow(2,32))

Upvotes: 4

Related Questions