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.
1 | 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.
1 2 3 4 5 | db.info.insert({ _id : 2, name : "Google", product: "Google Glass" }) |
output
1 2 3 4 5 6 | >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()
1 2 | > 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
1 | 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
[youtube https://www.youtube.com/watch?v=YCZV5N01Oqs]
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
1 | db.info.find()[0]._id |
0 is the index of first document or record. _id is the field/key name.