Visit complete MongoDB roadmap
MongoDB Topic

Timestamp

Timestamp

A “Timestamp” in MongoDB is a specific datatype used for tracking the time of an event or a document modification. It’s a 64-bit value containing a 4-byte incrementing ordinal for operations within a given second and a 4-byte timestamp representing the seconds since the Unix epoch (Jan 1, 1970).

When to use Timestamp

Timestamps are mainly used for internal MongoDB operations, such as replication and sharding. They can be useful in tracking the order of operations in a distributed system and ensuring data consistency across multiple nodes.

Creating and Querying Timestamps

To create a Timestamp, you can use the BSON Timestamp type. The syntax is as follows:

new Timestamp(t, i);

Where t is the seconds since the Unix epoch, and i is an incrementing ordinal for operations within a given second.

For example, to create a Timestamp for the current time:

var currentTimestamp = new Timestamp(
  Math.floor(new Date().getTime() / 1000),
  1
);

To query documents based on their Timestamp, you can use the $gt, $gte, $lt, or $lte query operators:

// Find all documents with a Timestamp greater than a specified date
db.collection.find({
  timestampFieldName: {
    $gt: new Timestamp(Math.floor(new Date('2021-01-01').getTime() / 1000), 1),
  },
});

Keep in mind that using Timestamps for application purposes is generally not recommended, as their main purpose is to serve internal MongoDB operations. Instead, consider using the Date datatype for general-purpose time tracking in your application.

Overall, Timestamps are a powerful tool in MongoDB for managing operations in distributed systems and maintaining data consistency.

More Topics

Explore related content

View All Topics
Loved by 100K+ Developers

Start Your Learning
Journey Today

Join thousands of developers who are leveling up their skills with structured roadmaps and expert guidance

No credit card required
Always free
Track your progress