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. Onur CANALP
    onurcanalp.com
    @06geek

    View full-size slide

  2. • MongoDB Nedir?
    • MongoDB Kurulumu
    • MongoDB için GUI
    • MongoDB bağlantısı
    • MongoDB ile CRUD
    Neler Göreceğiz?

    View full-size slide

  3. Ama Önce…
    MySQL Bilgimizi Gözden Geçirelim..
    • SELECT
    • FROM
    • WHERE
    • ORDER BY
    • LIMIT
    • UPDATE - SET
    • DELETE

    View full-size slide

  4. MongoDB Nedir?

    View full-size slide

  5. 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

    View full-size slide

  6. NoSQL
    •Sabit Tablo Şeması Yoktur
    •Kompleks data yapıları
    •Yatay Ölçeklendirilebilme
    •Join ve Foreign Key kullanılmaz..
    •….

    View full-size slide

  7. MongoDB Hangi Dillerde Çalışabilir?
    • C , C# (.NET), C++ , ERLANG, HASKELL, JAVA,
    JavaScript, Ruby, PHP, Perl , Python , Node.JS

    View full-size slide

  8. MongoDB Kurulumu

    View full-size slide

  9. MongoDB Kurulumu
    extension = mongo.so

    sudo apt-get install mongodb

    View full-size slide

  10. MongoDB için GUI

    View full-size slide

  11. • MongoHUB
    • MongoVUE
    • UMongo

    View full-size slide

  12. Herşey Yolunda mı?
    Kodlara geçiyoruz hazır mısınız?

    View full-size slide

  13. 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ü

    View full-size slide

  14. MongoDB Bağlantısı

    View full-size slide

  15. 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());      
    }

    View full-size slide

  16. //  futbolcular  İsimli  Collection'ı  Seçelim    
    $futbolcularColl  =  new  MongoCollection($db,  'futbolcular');  

    View full-size slide

  17. Nedir Bu Collection?

    View full-size slide

  18. //  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

    View full-size slide

  19. //  futbolcular  İsimli  Collection'ı  Seçelim    
    $futbolcularColl  =  new  MongoCollection($db,  'futbolcular');    
    !
    //  Tüm  futbolcuları  cekelim.    
    $futbolcuListesi  =  $futbolcularColl-­‐>find();    
    !
    //  Toplam  Futbolcu  Sayısı  
    echo  'Toplam  Futbolcu  :  '  .  $futbolcuListesi-­‐>count();    
       
    //  Çektiğimiz  kayıtları  listeleyelim.    
    foreach($futbolcuListesi  as  $futbolcu)  {    
           echo  $futbolcu['numara'].'  Numara,  '.$futbolcu['adsoyad'].'  
    ';      
    }
    READ - OKUMA

    View full-size slide

  20. OKUMA
    Peki Ya Filtreleme??
    $futbolcular-­‐>find();

    View full-size slide

  21. Filtreleme
    $whereClause    =  array('adsoyad'  =>  'Drogba');    
    !
    $futbolcuListesi  =  $futbolcularColl-­‐>find($whereClause);    
    !
    foreach($futbolcuListesi  as  $futbolcu)  {    
           echo  $futbolcu['numara'].'  Numara,  '.$futbolcu['adsoyad'].'  
    ';      
    }

    View full-size slide

  22. Okuma İşleminin Mantığı

    View full-size slide

  23. Filtreleme
    ?
    Biraz Kafa Karıştıralım mı

    View full-size slide

  24. 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

    View full-size slide

  25. Limit
    $futbolcuListesi  =  $futbolcularColl-­‐>find()-­‐>skip(1)-­‐>limit(10);    
    foreach($futbolcuListesi  as  $futbolcu)  {    
           echo  $futbolcu['numara'].'  Numara,  '.$futbolcu['adsoyad'].'  
    ';      
    }
    Order By
    $futbolcuListesi  =  $futbolcularColl-­‐>find()-­‐>skip(5)-­‐>limit(10)-­‐>sort($orderBy);    
    foreach($futbolcuListesi  as  $futbolcu)  {    
           echo  $futbolcu['numara'].'  Numara,  '.$futbolcu['adsoyad'].'  
    ';      
    }
    $orderBy = array('numara' => 1); // (1 : ASC , -1 : DESC) $
    ->sort($orderBy)

    View full-size slide

  26. UPDATE
    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ı!';  
               
    }  
    ?>

    View full-size slide

  27. DELETE
    if(!empty($_GET)){  
                 
           $id  =  $_GET['id'];  
           $futbolcularColl-­‐>remove(array(‘_id'  =>”$id”));  
       
           echo  'Silme  İşlemi  Başarılı!';            
    }  
    ?>

    View full-size slide

  28. İşimiz bitti.. Bağlantımızı Kapatalım
     $mongo-­‐>close();

    View full-size slide

  29. 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”));  

    View full-size slide

  30. • mongodb.org
    • http://www.php.net/manual/en/class.mongodb.php
    • http://en.wikipedia.org/wiki/MongoDB
    Daha Detaylı Bilgi İçin

    View full-size slide

  31. Teşekkürler
    Onur CANALP
    onurcanalp.com
    @06geek

    View full-size slide