- Php/MongoDB Sürücü Kurulumu (Windows veya Linux sistemler için)
- MongoDB Bağlantısı Kurmak
- MongoDB ile Kayıtları Listelemek
- MongoDB ile Kayıt Eklemek
- MongoDB ile Kayıt Güncelemek
- MongoDB ile Kayıt Silmek
- MongoDB ile Collection Silmek
- MongoDB ile Veritabanı Silmek
1. Php/MongoDB Sürücü Kurulumu (Windows veya Linux sistemler için):
MongoDB sunucusuna bağlanabilmek için php'ye mongoDB sürücüsünü yüklemeniz gerekmektedir. Eğer Linux işletim sistemine sahip bir cihaz kullanıyorsanız, https://github.com/mongodb/mongo-php-driver linkinden sürücüyü indiriniz. Aslında yapılması gereken işlemlerle alakalı komutlar aşağıdaki gibi olacaktır:
MongoDB sunucusuna bağlanabilmek için php'ye mongoDB sürücüsünü yüklemeniz gerekmektedir. Eğer Linux işletim sistemine sahip bir cihaz kullanıyorsanız, https://github.com/mongodb/mongo-php-driver linkinden sürücüyü indiriniz. Aslında yapılması gereken işlemlerle alakalı komutlar aşağıdaki gibi olacaktır:
-
#Kodlamayı git hesabından indirelim. git clone https://github.com/mongodb/mongo-php-driver #sürücünün derlenebilmesi için php-dev yükleyelim. sudo apt-get install php5-dev #kodlamanın bulunduğu dizin içerisine girelim. cd mongo-php-driver #Kodu derleyip yükleme işlemini gerçekleştirelim. phpize ./configure make sudo make install #Son olarak Php eklentisini aktif hale getirelim. sudo echo "extension=mongo.so" > /etc/php5/conf.d/10-mongo.ini
Eğer cihazınız Windows işletim sistemine sahip bir cihaz ise, o zaman http://pecl.php.net/package/mongo linkinden php versiyonunuza, 32-64 bit sisteminize bağlı olarak en uygun dll dosyasını indirmeniz gerekmektedir. Sonrasında indirilen php_mongo.dll dosyasını php sürücülerinin bulunduğu dizine kopyalayınız. Son olarakta php.ini dosyasına extension=php_mongo.dll satırını ekleyiniz. Bu işlem ile birlikte mongo sürücüsü sisteminizde kullanılır hale gelmiştir.
Not: Her iki sistemde de konfigürasyonlar üzerinde işlemler gerçekleştirildiğinden dolayı sunucunun restart edilmesi gerekebilir.
2. MongoDB Bağlantısı Kurmak:
MongoDB kurulumunun ardından artık bağlantı işlemlerine başlayabiliriz. Normalde mongoDB kurulumunda bağlantı için authentication gerekmemektedir. Yani sistem kimlik doğrulama özelliği olmadan kurulmaktadır. Ancak sonrasında istenilirse kullanıcı tarafından username, password ile sisteme erişim sağlanabilir. Ayrıca MongoDB default host olarak localhost, default port olarak ise 27017 portunu kullanmaktadır. Aşağıda bulunan komutla MongoDB ye örnek bir bağlantı oluşturalım:
3. MongoDB ile Kayıtları Listelemek:MongoDB kurulumunun ardından artık bağlantı işlemlerine başlayabiliriz. Normalde mongoDB kurulumunda bağlantı için authentication gerekmemektedir. Yani sistem kimlik doğrulama özelliği olmadan kurulmaktadır. Ancak sonrasında istenilirse kullanıcı tarafından username, password ile sisteme erişim sağlanabilir. Ayrıca MongoDB default host olarak localhost, default port olarak ise 27017 portunu kullanmaktadır. Aşağıda bulunan komutla MongoDB ye örnek bir bağlantı oluşturalım:
-
<?php try { // Mongo Sunucusuna bağlanalım $mongo = new Mongo('mongodb://localhost:27017'); // Veritabanını Seçelim $db = $mongo->selectDB('YazilimDersiDb'); } catch(MongoConnectionException $e) { die('Bağlantı kurulumunda sorun ile karşılaşıldı: ' . $e->getMessage()); } ?>
-
$mongo = new Mongo('mongodb://kullanıcıadı:şifre@localhost:27017');
MongoDB bağlantısının ardından artık collectionları inceleyebiliriz. Collectionlar, mongoDB'nin odacıkları olarak isimlendirilebilir. MySQL de tablo yapısına karşılık gelmektedir ve veriler bu hücrelerde tutulmaktadır. En önemli özelliği MySQLde bulunan tablosundan farklı olarak alan ad tanımlanmasının zorunlu olmamasıdır. Ayrıca ortak şema gereksinimi de bulunmamaktadır. Aşağıda bulunan kodlama ile belirlediğimiz herhangi bir collectiona bağlanalım. Sonrasında bu collectiona örnek data ekleyelim.
-
<?php #diller isimli collectiona bağlantı gerçekleştirelim. $diller = new MongoCollection($db, 'diller'); #bu collectiona örnek kayıt atalım. $diller->insert(array('dil' => 'Android', 'makalesayisi' => 12)); $diller->insert(array('dil' => 'Php', 'makalesayisi' => 22)); $diller->insert(array('dil' => 'Ruby On Rails', 'makalesayisi' => 34)); $diller->insert(array('dil' => 'Linux', 'makalesayisi' => 56)); ?>
-
<?php #kayıtlı dil sayısını yazalım. echo "kayıtlı dil sayısı : ".$diller->count(); ?>
-
<?php #tüm dilleri çekelim. $dilListesi = $diller->find(); #kayıtlı dilleri listeleyelim. foreach($dilListesi as $dil) { printf('Dil : %s - Miktar : %s <br>', $dil['dil'], $dil['makalesayisi']); } ?>
-
<?php #koşulu belirleyelim. $where = array('makalesayisi' => '12'); #makalesayisi 12 olan dilleri çekelim. $dilListesi = $diller->find($where); #sonuçları listeleyelim. foreach($dilListesi as $dil) { printf('Dil : %s - Miktar : %s <br>', $dil['dil'], $dil['makalesayisi']); } ?>
-
<?php #Sıralamayı belirleyelim. (1 : ASC , -1 : DESC) $orderBy = array('dil' => -1); #limit ver orderBy metodlarını uygulayalım. $dilListesi = $diller->find()->limit(2)->orderBy($orderBy); ?>
4. MongoDB ile Kayıt Eklemek:
Yukarıdaki maddeler collectiona nasıl kayıt atıldığı ile alakalı örnek verdim. Ancak burada biraz daha detaylı olarak size sistemin nasıl çalıştığını anlatacağım. Collectionlara kayıt eklenirken insert() metodu kullanılmaktadır ve içerikler array olarak girilmektedir. Konuyla alakalı örnek kodlama şu şekildedir:
-
<?php #eklenecek dil bilgilerini tanımlayalım. $yeniDil = array( 'dil' => 'Java', 'makalesayisi' => 122 ); try { $diller->insert($yeniDil); } catch(MongoCursorException $e) { die('Yeni dil eklenirken teknik bir sorunla karşılaşıldı ' . $e->getMessage()); } ?>
5. MongoDB ile Kayıt Güncellemek:
Collectionlarda mevcut herhangi bir kaydın güncellenmesinde ise where ve update() keywordleri önemli bir yer tutmaktadır.Aşağıdaki kodlamada collectionlarda bulunan herhangi bir kaydın nasıl güncellediği ile alakalı örnek kodlama bulunmaktadır:
-
<?php #güncellenecek kaydın koşulunu belirleyelim. $where = array('dil' => 'Java'); #güncellenecek alanı belirleyelim. $guncelDil = array('makalesayisi' => 435); #içeriği güncelleyelim. $diller->update($where, $guncelDil); ?>
-
<?php #silenecek kaydın koşullarını belirliyoruz. $where = array('dil' => 'Android'); #kaydı collection içerisinden siliyoruz. $diller->remove($where); ?>
-
<?php #silinecek collectionun belirleyelim. $diller->drop(); ?>
8. MongoDB ile Veritabanı Silmek:
Aşağıdaki kodlamada veritabanın nasıl silindiği ile alakalı örnek kodlama bulunmaktadır. Burada keyword olarak dropDatabase() metodu kullanılmaktadır:
-
<?php $db->dropDatabase(); ?>