MongoDB veritabanına bağlanmak
Bu dersi takip edebilmek için öncelikle MongoDB veritabanını kurunuz.
Kurulumdan sonra bir kaç kayıt ekleyiniz emin olunuz.
Öncelikle kaynak dizininde bulunan ana.d kütüğünü bir metin düzenleyici ile açalım.
emacs kaynak/ana.d
İçindeki kaynak kodu değiştirip, şunları girelim.
import vibe.vibe;
import vibe.db.mongo.mongo;
void günlük(HTTPServerRequest istek, HTTPServerResponse yanıt)
{
logInfo("Veritabanına bağlanıyorum...");
auto veritabanı = connectMongoDB("127.0.0.1").getDatabase("kiraz");
auto kullanıcılar = veritabanı["kullanıcılar"];
logInfo("Veritabanını sorguluyorum...");
Bson sorgu = Bson(["şifre" : Bson("çokgizli")]);
auto sonuç = kullanıcılar.find(sorgu);
logInfo("Sonuçları gösteriyorum...");
foreach (i, kayıt; sonuç.byPair)
logInfo("Kayıt %d: %s", i, kayıt.toJson().toString());
yanıt.writeBody("İşlem başarılı");
}
void main()
{
auto yolAtayıcı = new URLRouter;
yolAtayıcı.get("/günlük", &günlük);
auto ayarlar = new HTTPServerSettings;
ayarlar.port = 8080;
ayarlar.bindAddresses = ["::1", "127.0.0.1"];
listenHTTP(ayarlar, yolAtayıcı);
logInfo("Lütfen tarayıcınızla http://127.0.0.1:8080/ adresini açınız.");
runApplication();
}
Kiraz dizininin içinde iken dub komutu ile uygulamayı derleyip, çalıştıralım.
dub
Tarayıcınızla http://localhost:8080/günlük adresini açtığınızda, işlemin başarılı olduğuna dair bir ileti görebilirsiniz.
Uygulamanın günlük çıktısında sorguya uyan kayıtların gösterildiğini görebilirsiniz.

Geliştirdiğimiz uygulamada şifresi çok gizli olan kullanıcıları bulmaya çalışıyoruz.
Yol atama kısmında önceki derslerden hatırlayabileceğiniz üzere gelen istekleri günlük adresine yönlendiriyoruz.
auto veritabanı ile başlayan kısım veritabanı bağlantısını sağlıyor.
Hatırlarsanız kiraz isimli veritabanında kullanıcılar isimli bir belge ağacı oluşturmuştuk. Bu belge ağacına veritabanı['kullanıcılar'] şeklinde basitçe erişebiliyoruz.
Burada sadece sorgu ifadesi biraz karışık gelebilir.
Bson aslında Json veri biçiminin ikili olarak saklanmasıdır.
Hatırlarsanız oluşturduğumuz kayıt şuna benziyordu :
{
"_id" : 1,
"isim" : "Erdem",
"şifre" : "çokgizli"
}
Burada yaptığımız sorgu ile, şifre alanı çokgizli olan kullanıcıları bulmaya çalışıyoruz.
auto sonuç ifadesi ile bu sorguyu veritabanında çalıştırdıktan sonra dönen değeri sonuç değişkenine atıyoruz.
foreach kullanımına diğer programlama dillerinden aşinalık kazanmış olabilirsiniz.
Burada diğer programlama dillerinden farklı olarak sonuç.byPair ifadesi ile bir çift değişkeni ekrana yazdırabildiğimize dikkat ediniz.
Kayıtların Bson biçiminde olduğunu belirtmiştik. Bu kayıtları ekrana yazdırmak için önce Json sonra da dizge biçimine çeviriyoruz.
kayıt.toJson().toString() ifadesi tam olarak bunu yapıyor.
Yorumlar