How do I extract the created date out of a Mongo ObjectID How do I extract the created date out of a Mongo ObjectID shell shell

How do I extract the created date out of a Mongo ObjectID


getTimestamp()

The function you need is this one, it's included for you already in the shell:

ObjectId.prototype.getTimestamp = function() {    return new Date(parseInt(this.toString().slice(0,8), 16)*1000);}

References

Check out this section from the docs:

This unit test also demostrates the same:

Example using the Mongo shell:

> db.col.insert( { name: "Foo" } );> var doc = db.col.findOne( { name: "Foo" } );> var timestamp = doc._id.getTimestamp();> print(timestamp);Wed Sep 07 2011 18:37:37 GMT+1000 (AUS Eastern Standard Time)> printjson(timestamp);ISODate("2011-09-07T08:37:37Z")


This question is helpful to understand of how to use the _id's embedded timestamp in query situations (refers to the Mongo Extended JSON documentation). This is how it's done:

col.find({...,      '_id' : {'$lt' : {'$oid' : '50314b8e9bcf000000000000'}} })

finds documents created earlier than the one that's given by oid. Used together with natural sorting and limiting you can utilize BSON _ids to create Twitter-like API queries (give me the last OID you have and I'll provide twenty more)


In python you can do this:

>>> from bson.objectid import ObjectId>>> gen_time = datetime.datetime(2010, 1, 1)>>> dummy_id = ObjectId.from_datetime(gen_time)>>> result = collection.find({"_id": {"$lt": dummy_id}})

I think, ObjectId.from_datetime() - its a useful method of standard bson libMaybe other language bindings have alternative builtin function.Source: http://api.mongodb.org/python/current/api/bson/objectid.html