In this video tutorial we shall learn more about ObjectId( _id ) of MongoDB document.
ObjectId is a primary key in any mongoDB document.
We can’t change document id once it has been created and inserted.
If we do not explicitly assign value to _id, then it’ll be automatically assigned and inserted.
We can’t have same document id for more than 1 document.
These ObjectId’s are of BSON datatype.
It’s a 12-byte value.
Basically, each _id is a combination of ..
– Time the document/record was saved/inserted
– Host name of the machine/server it’s running on
– Process id of the server process
– and a random incremental number
Example documents
Since the ObjectId‘s are formed taking time of insertion of document into consideration, we can extract this time using getTimestamp() method.
db.info.find()[0]._id.getTimestamp()
Custom _id values
We can explicitly define the _id value and in such case system won’t add it for us.
db.info.insert({
_id : 2,
name : "Google",
product: "Google Glass"
})
output
>db.info.find().forEach(printjson)
{
"_id" : 2,
"name" : "Google",
"product": "Google Glass"
}
If you insert ObjectId yourselves, then having a separate ‘document_created_at’ field becomes necessary depending on your application requirements.
For that, you can use a inbuilt method Date()
> new Date()
ISODate("2013-05-01T07:55:12.467Z")
Date is actually a class, but it calls upon the constructor method, hence returning current system/server timestamp, in ISO format.
Remove / Delete / Drop Document
db.info.remove({ _id: 2 })
To remove a document, simply pass in a unique { key: value } pair and the document gets deleted/removed.
Primary Key in MongoDB: ObjectId
Navigation of Documents
To navigate between documents, use the index numbers, and to select particular field use it’s key name.
To get the _id of first document
db.info.find()[0]._id
0 is the index of first document or record. _id is the field/key name.