Upgrade to Pro — share decks privately, control downloads, hide ads and more …

NoSQL & MongoDB

NoSQL & MongoDB

NoSQL kavramına genel bir bakış..
MongoDB kurulumu ve CRUD işlemleri ile bu İşlemler sırasında ki işleyişi ele alalım..

Onur Canalp

March 07, 2014
Tweet

More Decks by Onur Canalp

Other Decks in Programming

Transcript

  1. • MongoDB Nedir? • MongoDB Kurulumu • MongoDB için GUI

    • MongoDB bağlantısı • MongoDB ile CRUD Neler Göreceğiz?
  2. Ama Önce… MySQL Bilgimizi Gözden Geçirelim.. • SELECT • FROM

    • WHERE • ORDER BY • LIMIT • UPDATE - SET • DELETE
  3. MongoDB Nedir? • Şubat 2009 da hayatımıza girmiştir.. • MongoDB,

    C++ ile yazılmış açık kaynaklı ilişkisel olmayan ve önde gelen NoSQL veritabanıdır. • 32 ve 64 bitlik Windows,OSX,Linux, Unix , BSD sistemlerde çalışmaktadır. • Veriler, BSON döküman yapısında saklanır. • Büyük ölçekli uygulamalar için tasarlanmıştır. • Geo-Spatial Queries
  4. MongoDB Hangi Dillerde Çalışabilir? • C , C# (.NET), C++

    , ERLANG, HASKELL, JAVA, JavaScript, Ruby, PHP, Perl , Python , Node.JS
  5. Array! (! [0] => Array! (! [_id] => 1! [numara]

    => 1! [adsoyad] => Muslera! )! ! [1] => Array! (! [_id] => 2! [numara] => 9! [adsoyad] => Burak Yılmaz! )! ! [2] => Array! (! [_id] => 3! [numara] => 11! [adsoyad] => Drogba! )! ! ) [{"_id":"1","numara":"1","adsoyad":"Muslera"}, {"_id":"2","numara":"9","adsoyad":"Burak Yılmaz"}, {"_id":"3","numara":"11","adsoyad":"Drogba"}] Datalarımızın Dizi Şeklinde Görüntüsü
  6. try  {            //  Mongo  Sunucusuna

     bağlanalım            $mongo  =  new  Mongo('mongodb://127.0.0.1:27017');            /*             Eğer  Mongo  sunucunuzda  kimlik  doğrulama  özelliği  aktifse  bağlantı  satırını       aşağıdaki  şekilde  düzenleyebilirsiniz.                 $mongo  =  new  Mongo('mongodb://onur:[email protected]:27017');            */              //  Veritabanını  Seçelim            $db  =  $mongo-­‐>selectDB('mongOnur');     ! }  catch(MongoConnectionException  $e)  {            die('Baglanti  Hatası  :  '  .  $e-­‐>getMessage());       }
  7. <?php   //  futbolcular  İsimli  Collection'ı  Seçelim     $futbolcularColl

     =  new  MongoCollection($db,  'futbolcular');         if(!empty($_POST)){              $futbolcular  =  $futbolcularColl-­‐>find();          $futbolcular_adet  =  $futbolcular-­‐>count();                    $id  =  $futbolcular_adet  +  1;          $adsoyad  =  $_POST['adsoyad'];          $numara  =  $_POST['numara'];              $adaminDibi  =  array('_id'=>$id,  'adsoyad'=>$adsoyad,  'numara'=>$numara);              $futbolcular-­‐>insert($adaminDibi);          echo  $adsoyad  .  '  kaydedildi..';       }   ?> CREATE - KAYIT
  8. //  futbolcular  İsimli  Collection'ı  Seçelim     $futbolcularColl  =  new

     MongoCollection($db,  'futbolcular');     ! //  Tüm  futbolcuları  cekelim.     $futbolcuListesi  =  $futbolcularColl-­‐>find();     ! //  Toplam  Futbolcu  Sayısı   echo  '<p>Toplam  Futbolcu  :  </p>'  .  $futbolcuListesi-­‐>count();         //  Çektiğimiz  kayıtları  listeleyelim.     foreach($futbolcuListesi  as  $futbolcu)  {            echo  $futbolcu['numara'].'  Numara,  '.$futbolcu['adsoyad'].'  <br>';       } READ - OKUMA
  9. Filtreleme $whereClause    =  array('adsoyad'  =>  'Drogba');     !

    $futbolcuListesi  =  $futbolcularColl-­‐>find($whereClause);     ! foreach($futbolcuListesi  as  $futbolcu)  {            echo  $futbolcu['numara'].'  Numara,  '.$futbolcu['adsoyad'].'  <br>';       }
  10. Filtreleme - Karşılaştırma Operatörleri $gt   greater  >  $futbolcularColl.find(  {

     qty:  {  $gt:  20  }  }  )   $gte   equal  or  greater  >=   $in   in  $futbolcularColl.find(  {  qty:  {  $in:  [  5,  15  ]  }  }  )   $lt   less  than  <   $lte   less  than  or  equal  <=   $ne   not  equal  !=  $futbolcularColl.find(  {  qty:  {  $ne:  20  }  }  )   $nin   not  exist  in  $futbolcularColl.find(  {  qty:  {  $nin:  [  5,  15  ]  }  }  ) $or     $futbolcularColl.find(  {  price:1.99,  $or:  [  {  qty:  {  $lt:  20  }  },  {  sale:  true  }  ]  }  )   ! $and   $futbolcularColl.find({  $and:  [  {  price:  1.99  },  {  qty:  {  $lt:  20  }  },  {  sale:  true  }  ]  }  )   ! $not   $futbolcularColl.find(  {  price:  {  $not:  {  $gt:  1.99  }  }  }  )   ! $nor   $futbolcularColl.find(  {  $nor:  [  {  price:  1.99  },  {  sale:  true  }  ]    }  ) Filtreleme - Mantıksal Operatörler
  11. Limit $futbolcuListesi  =  $futbolcularColl-­‐>find()-­‐>skip(1)-­‐>limit(10);     foreach($futbolcuListesi  as  $futbolcu)  {

               echo  $futbolcu['numara'].'  Numara,  '.$futbolcu['adsoyad'].'  <br>';       } Order By $futbolcuListesi  =  $futbolcularColl-­‐>find()-­‐>skip(5)-­‐>limit(10)-­‐>sort($orderBy);     foreach($futbolcuListesi  as  $futbolcu)  {            echo  $futbolcu['numara'].'  Numara,  '.$futbolcu['adsoyad'].'  <br>';       } $orderBy = array('numara' => 1); // (1 : ASC , -1 : DESC) $ ->sort($orderBy)
  12. UPDATE <?php     if(!empty($_POST)){          

               $id  =  $_POST['id'];          $adsoyad  =  $_POST['adsoyad'];          $numara  =  $_POST['numara'];                      $query  =  array('_id'=>$id);          $futbolcu  =  $futbolcularColl-­‐>findOne($query);                      $futbolcu['adsoyad']  =  $adsoyad;          $futbolcu['numara']  =  $numara;          $futbolcularColl-­‐>save($futbolcu);                      echo  'Güncelleme  İşlemi  Başarılı!';               }   ?>
  13. DELETE <?php     if(!empty($_GET)){          

                 $id  =  $_GET['id'];          $futbolcularColl-­‐>remove(array(‘_id'  =>”$id”));              echo  'Silme  İşlemi  Başarılı!';             }   ?>
  14. Yorulduk mu??$ ! Hadi Gördüklerimizi Hızlıca Hatırlayalım… NoSQL JSON Mongo.so

    GUI (MongoHub) $mongo-­‐>selectDB new  Mongo new  MongoCollection($db,  'futbolcular') $futbolcularColl-­‐>find() $futbolcular-­‐>count() $futbolcular-­‐>insert(ARRAY) $futbolcularColl-­‐>find()-­‐>skip(5)-­‐>limit(10)-­‐>sort($orderBy)        $futbolcu  =  $futbolcularColl-­‐>findOne($query);          $futbolcularColl-­‐>save($futbolcu);          $futbolcularColl-­‐>remove(array(‘_id'  =>”$id”));