Ufaktan ufaktan MongoDB'ye giriş yapıyorum. Yaparken de öğrendiklerimi belki birilerine faydalı olur umuduyla paylaşıyorum.
MongoDB'deki kavramlar ve ilişkilendirilmiş veri tabanlarındaki karşılığı aşağıdaki tabloda yer alıyor. Teknoloji ile ilgili terimlerin türkçeleştirilmesini mantıklı karşılamayanlardan olduğum için orjinal kavramdan uzak kalmayacağım.
RDBMS |
MongoDB |
Database |
Database |
Row |
Document |
Column |
Field |
(RDBMS- Relational Database Management System)
MongoBD'de document ( döküman/belge/row ) kavramı
MongoDB içindeki key-value eklinde tutulan bir kayıt bir document'tır. Her document kendi dinamic şemasına sahiptir. dinamik şemadan kasıt, aynı collection (tablo) içindeki document'ların aynı yapı ve aynı alanlara sahip olması gerekmiyor demektir. Farklı field da tanımlamalar yapılabilir.
Ortak alanlarda farklı tiplerde veri tutabilir. MongoDB'deki belgeler (documents) JSON nesnelerine benzer. 'deki "row" karvamına karşılık gelmektedir.
Örnek 1.
MongoDB'de bir document (row)
MongoDB'de Collection (Tablo) kavramı
Collection (Koleksiyon/tablo) MongoDB belgelerinin (documents) grubudur. RDBMS'deki karşılığı ise "TABLO"lardır. Collection içindeki Documents (belgeler) farklı alanlara sahip olabilir.
Bir koleksiyondaki tüm belgeler (documents) benzer ya da bir amaçla bağlantılıdır.
MongoDB'deki "id" mantığı
_id her document'ın tekliğini sağlayan / garanti eden 12 byte'lık hexadecimal bir numaradır.
Document'ı eklerken bu değeri siz de verebilirsiniz. Siz vermediğiniz takdirde MongoDB kendi bir tane atayacaktır. Otomatik atanan _id'nin atanması ise şu şekildedir;
ilk 4 byte = şuanki zaman (current timestamp)
sonraki 3 byte = makine id'si (machine id)
sonraki 3 byte = mongodb serverin işlem id'si (process id of mongodb server )
son 2 byte ise artan bir değerdir.