ObjectId is the primary form of identification in MongoDB. ObjectId is a 12 bytes long identifier consisting of non- pseudo- and fully random components.
ObjectId contains metadata about the creation date in UNIX epoch time, the machine identifer and process ID that created it as well as a random number that’s incremented.
ObjectId is often represented as a 24-character hexadecimal string which is useful in places like an URL
MongoKitten ObjectId values are easily generated using an empty initializer:
Alternatively they’re initializable using a hexadecimal String representation like
let hexString = "1234567890abcdef12345678" let objectId = try ObjectId(hexString)
In some cases you might want to know the ObjectIds creation date. You can fetch a
Foundation.Date from the ObjectId using
let objectIdCreationDate = myObjectId.epoch
Last but not least, ObjectIds are hashable, so they’re usable for a key in a Dictionary, but not a Document.
let dictionary: [ObjectId: Document] = [ ObjectId(): ..., ObjectId(): ... ]
In the case of MongoKitten/MongoDB this may be useful when you’re creating a cache for information from the database. Instead of re-fetching this data from the database you can identify the data using the ObjectId identifier easily.