Merhaba arkadaşlar,

Bugün sizlere çok ufak bir bilgi aktarmaya çalışacağım.

MongoDB kurduğumuzda beraberinde gelen Mongo Shell’ in güzelliklerinden bahsedeceğim. Eğer henüz mongo db yı kurmadıysanız bir önceki yazıma buradan ulaşabilirsiniz.

MongoDB bildiğimiz gibi JSON’ ın biraz daha gelişmiş hali olan BSON’ u kullanıyor. Yani dökümanlarımız BSON formatında kayıt oluyor. Shell’de CRUD işlemleri yaparken bazen nokta gösterimine ihtiyacımız olabilir. Özellikle nesneye yönelimli programlamada çok kullandığımız nokta operatörü burada da hemen hemen aynı görevi görüyor diyebiliriz.

Şimdi bir “x” dökümanı tanımlayalım.

x = { "a" : 1 };

x dökümanımızın içinde bir a değişkeni ve onun değerini tutuyoruz.

şimdi bir “y” tanımlayıp değerine “a” stringini atayalım.

y = "a";

Şimdi işin güzel tarafına gelebiliriz. Normalde biz javascript’te objelerimizin içindeki verilere nasıl “.” ile erişebiliyorsak, burada da aynı şekilde erişebiliyoruz.

Yani “x.a” bize x dökümanımızdaki a değişkeninin verisini döndürecek. Aynı şekilde x[“a”] da bize a’ nin değerini döndürmekte.

x.a;
x["a"];

Daha bitmedi, biraz önce bir y değişkeni tanımlamıştım. y’nin değerine string bir şekilde “a” demiştim. Burada önemli olan nokta şu: y’nin tuttuğu değer “a”.

Biraz önce x.a ile ve x[“a”] ile x dökümanındaki a değişkeninin verisine erişebildiğimi söylemiştim. Peki aynı şekilde x[y] ve x.y ile bu değişkenin verisine erişebilir miyim?

Cevabımız şu şekilde: x[y] çalışırken, y’nin tuttuğu değer göz önünde bulundurulur. Bu yüzden x’ in içindeki “a” aranır. Fakat nokta operatörü ile yani x.y dediğimizde direk x’ in altındaki y değişkeni aranır. Bu örneğimizde de x dökümanımızın içinde y değişkenimiz olmadığı için NaN sonucu dönecektir.

x[y]++;
print(x.a);

Yukardaki kodda karşımıza cevap olarak 2 döndüğünü göreceksiniz.

Bir sonraki yazım, MongoDB’ de insert komutu