Vala programlama dili ile MongoDB veritabanı kullanımı
Vala C kodu üretebilen hızlı çalışan bir programlama dilidir.
Bu derste Vala ile MongoDB kullanımını öğreneceğiz.
Öncelikle Mongo veritabanının C sürücüsüne ihtiyacımız var.
Archlinux için aşağıdaki komutla bu sürücüyü kurabilirsiniz.
sudo pacman -S --needed mongo-c-driver
Vala'nın C sürücüsü ile haberleşebilmesi için ek bir bağa ihtiyacı var.
Öncelikle aşağıdaki depoyu çekiniz.
git clone https://github.com/bynect/mongo-vapi
Dizinin içine girelim.
cd mongo-vapi/
Meson yazılımını çalıştırdık.
meson kur
Ninja'yı çalıştırınız
ninja -C kur
Eğer bakarsanız şimdi vapi
isimli bir dizin oluşacak.
Bu dizindeki iki kütüğü Vala'nın erişebileceği bir dizine kopyalıyoruz.
sudo cp vapi/libmongoc-1.0.deps cp vapi/libmongoc-1.0.vapi /usr/share/vala-0.56/vapi/
Aşağıdaki kütüğü ilk.vala
ismi ile kaydediniz.
int main()
{
string sunucuAdresi = "mongodb://localhost:27017";
Mongo.BsonError hata = Mongo.BsonError ();
Mongo.init();
Mongo.Uri adres = new Mongo.Uri.with_error (sunucuAdresi, hata);
var yerel = new Mongo.Client.from_uri(adres);
Mongo.Database veritabani = yerel.get_database("vişne");
Mongo.Collection kullanicilar = yerel.get_collection("vişne",
"kullanıcılar");
Mongo.Bson gonderi = new Mongo.Bson();
gonderi.append_int32 ("_id", -1, 3);
gonderi.append_utf8 ("isim", -1, "Veli", -1);
gonderi.append_utf8 ("şifre", -1, "gizlideğil", -1);
kullanicilar.insert_one(gonderi, null, null, hata);
Mongo.cleanup();
return 0;
}
Uygulamayı derlemek için aşağıdaki komutu veriniz.
valac --pkg libmongoc-1.0 ilk.vala -o ilk
Uygulamayı ./ilk
yazarak çalıştırabilirsiniz.
Burada daha önce oluşturduğumuz kiraz isimli veritabanından sorgulama yapıyoruz.
Şifresi çok gizli olan kullanıcıları bulmaya çalışıyoruz.
Aşağıdaki kütüğü oku.vala ismi ile kaydediniz.
int main()
{
string sunucuAdresi = "mongodb://localhost:27017";
Mongo.BsonError hata = Mongo.BsonError ();
Mongo.init();
Mongo.Uri adres = new Mongo.Uri.with_error (sunucuAdresi, hata);
var yerel = new Mongo.Client.from_uri(adres);
Mongo.Database veritabani = yerel.get_database("kiraz");
Mongo.Collection kullanicilar = yerel.get_collection("kiraz",
"kullanıcılar");
var sorgu = new Mongo.Bson();
var cikis = new Mongo.Bson();
sorgu.append_utf8("şifre", -1, "çokgizli", -1);
var sonuc = kullanicilar.find_with_opts(sorgu, null, null);
while (sonuc.next (out cikis))
{
var okunan = cikis.as_canonical_extended_json(null);
stdout.printf ("Okuyorum:\n%s\n\n", okunan);
}
Mongo.cleanup();
return(0);
}
Uygulamayı derlemek için aşağıdaki komutu verebilirsiniz.
valac --pkg libmongoc-1.0 oku.vala -o oku
Uygulamayı ./oku
yazarak çalıştırabilirsiniz.
Kayıt numarasından da sorgulama yapabiliriz. Örneğin 5 numaralı kaydı bulmak için aşağıdaki sorguyu kullanabiliriz :
sorgu.append_int32 ("_id", -1, 5);
Yorumlar