D ile günlük

MongoDB veritabanına bağlanmak

Bu makalede D'nin vibed kütüphanesi ile MongoDB veritabanına nasıl bağlanabileceğimizi öğreneceğiz.

MongoDB veritabanına bağlanmak

Bir önceki makalede MongoDB veritabanı kurulumundan bahsetmiştik.

Bu derste D'nin vibed kütüphanesini kullanarak MongoDB'den nasıl kayıt okutabileceğimizi öğreneceğiz.

Kiraz dizininde iken kaynak dosyamız olan app.d kütügünü bir metin düzenleyici ile açalım.

$ emacs source/app.d

İçindeki kaynak kodu değiştirip yerine ş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("localhost").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();
}

Burada yol atama kısmında önceki derslerden hatırlayabileceğiniz üzere gelen istekleri günlük adresine yönlendiriyoruz.

auto veritabanı ile veritabanı bağlantısı yapıyoruz.

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şebildiğimizi görebilirsiniz.

Burada sadece sorgu ifadesi biraz karışık gelebilir. Bson aslında Json veri biçiminin ikili olarak saklanması.

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 başka 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.

Tekrar kiraz dizinine gelip uygulamayı derleyip çalıştıralım.

$ dub

Tarayıcınızla http://localhost:8080/günlük adresini açtığınızda ekrana işlemin başarılı olduğuna dair bir ileti görmelisiniz.

Eğer komut satırında uygulamanın günlük çıktısına bakarsanız kayıtların gösterildiğini görebilirsiniz.

MongoDB ile veritabanından kayıt okumak

Yorumlar

yorum yaz

Yorum yaz

Henüz yorum yok.