Codeigniter ile MongoDB veritabanı sistemini kullanabilmek için yazdığım kütüphaneyi inceliyoruz.Codeigniter ve MongoDB başlıklı bir önceki yazımda mevcut kütüphaneleri kullanmak yerine küçük bir kütüphane yazdığımı söylemiştim. PHP MongoDB eklentisini genişleterek yazdığım kütüphane sadece veritabanı bağlantısını yaparak Codeigniter tarzında ($this->library->method gibi ) kodlama yapmamızı sağlıyor. Ayrıca ekleme/düzenleme/silme işlemlerinde MongoDB'nin verdiğimiz komutu işlediğinden emin olmak için kullanabileceğimiz safe parametresini her sorguda tekrar etmemek için bu parametreyi kullanan Mongo metodlarını da genişlettim.
Kullanımı
mongo.php dosyasında gerekli bilgileri girdikten sonra normal şekilde kütüphaneyi yüklüyoruz.
$this->load->library('mongo_db');
MongoDB'de Mysql'den alışageldiğimiz tablolar yerine koleksiyon denilen döküman toplulukları yer alıyor. Kütüphaneyi yükledikten sonra işlem yapmak istediğimiz dökümanı aşağıdaki gibi seçip istediğimiz komutu çalıştırıyoruz.
$this->mongo_db->koleksiyon_adi->metod($parametreler);
Burada koleksiyon_adi ile işlem yapacağımız koleksiyonu seçip metod() işlemini uyguluyoruz. Buradaki metod MongoCollection sınıfındaki herhangi bir metod olabilir. Gerçek örneklerle açıklarsak daha kolay olur sanırım. Diyelim ki kullanıcıları kaydedeceğiniz users isimli bir koleksiyonunuz var.
Yeni kayıt ekleme:
$data = array('username'=>'mustafa','email'=>'x@y.com');
$this->db->users->insert($data);
Mevcut bir kaydı düzenleme:
$where = array('username'=>'mustafa');
$data =array('$set' => array('email' => 'a@b.com'));
$this->db->users->update($where,$data);
Kaydı silme:
$where = array('username' => 'mustafa');
$this->db->users->remove($where);
Bir kayıt çekme:
$where = array('username' => 'mustafa');
$this->db->users->findOne($where);
Tüm kayıtları çekme:
$this->db->users->find();
MongoDB'ye biraz gözattıysanız mantığını anlamışsınızdır sanırım, örnekleri bu şekilde çoğaltıp gidebiliriz. $data dizisine istediğiniz kadar ve istediğiniz derinlikte veri yazabilirsiniz. $where değişkeninde durum biraz daha farklı. Bu konuda php.net'teki örneklere göz atabilirsiniz. (Belki bir başka yazıda bu konuyu ele alabiliriz.) Koleksiyonları kullanmaya başlamak için önceden koleksiyonu oluşturmak gibi bir gereksinimimiz yok. İlk insert komutundan sonra MongoDB bizim için verdiğimiz isimde bir koleksiyon oluşturuyor.
Kütüphaneyi bitbucket üzerinde açtığım Codeigniter MongoDB Library deposundan indirebilirsiniz. Kütüphane hakkında görüş ve önerilerinizi esirgemezseniz sevinirim ![]()
Onun dışında çok iyi bir fikir olmuş. MongoDB ye geçiş döneminde eski alışkanlıkları terk etmek zor olabilir.
Eline sağlık.
Neden PHP 5.3+ desek iyi olur onu da anlayamadım. Denemedim ama 5.2 ile de çalışması gerekiyor kütüphanenin.
Teşekkürler.
Kolay gelsin.
$this->mongo_db->metod şeklinde kullanarak Mongo sınıfının metodlarını,
$this->mongo_db->koleksiyon_adi->metod şeklinde de MongoCollection sınıfının metodlarını kullanabilirsiniz.
Yorumunuzdan yola çıkarak MongoDB sınıfının metodlarını kullanabileceğiniz hale önümüzdeki günlerde getireceğim.