Mongodb
Herkese Merhabalar, Bu Yazımda da Sıfırdan İleriye Doğru Mongodb Anlatmaya Çalışıyor Olacağım. Umarım Faydalı Olur Bir Sonraki Yazımda İse Ubuntu’ya Nasıl Kurulur ve Python’da Kullanımı Gösteriyor Olucam Takipte Kalın..
Öncellikle Terminoloji Terimlerini Yazmam Gerek
TABLE > COLLECTİON
ROW > DOCUMENT
INDEX > INDEX
FOREIGN KEY > REFERENCES
JOIN > EMBEDDED
BUNLARIDA ÖĞRENDİYSEK HADİ BASLAYALIM !.
MongoDB — Create Database
SHOW DBS (DBLERİ GÖSTERİR)
USE DATA (DB OLUŞTURUR)
USE DATA (VERİTABANINA ERİŞME)
MongoDB — Drop Database
db.dropDatabase(‘database Name’)/KÜÇÜK BÜYÜK HARF DUYARLILIĞI VARDIR
MongoDB — Create Collection
crateCollection (COLLECTİON OLUŞTURUR)
db.crateCollection(‘collection name’)
SHOW TABLES — COLLECTİONLARI GÖSTERİR
MongoDB — Drop Collection
DROP()
db.collection_name.drop()
SHOW TABLES
MongoDB — Insert Document
.insert({}),insertOne({}),insertMany([{}])
db.collection_name.insert({‘name’:’ibrahim’,’surname’:’yildiz’…..}) Bir Tane Ekler
db.collection_name.insertOne({‘name’:’ibrahim’,’surname’:’yildiz’…..}) Birden Fazla Eklemek İçin
db.collection_name.insert([{‘name’:’ibrahim’,’ibraghim’},{‘name’:’ibrahim’}……]) Birden Fazla Eklemek İçin
FOR DONGÜSÜ YAPARAK VERİ EKLEME
for(i=1;i<=20;i++)db.collection_name.insert({‘name’:’ibrahim’,’surname’:’yildiz’,’sayac’:i})
MongoDB — Query Document
find(),pretty(),findOne()
db.collection_name.find() VERİLERİMİZİ GÖSTERİR
db.collection_name.find().pretty() VERİLERİMİZ ALT ALTA GÖSTERİR
db.collection_name.findOne() SADECE BİR ADET VERİ GETİRİR
db.collection_name.find(‘name’:’ibrahim’) NAME İBRAHİM OLANLARI GETİRİR
WHERE CLAUSE — ŞARTLADIRMA
$eg EŞİTSE ANLAMI KATIYOR ASLINDA TAM KULLANILIYOR DİYEMECEGİZ
db.collection_name.find(‘name’:’ibrahim’)
$lt KÜCÜKSE ANLAMI KATIYOR
db.collection_name.find(‘price’:{$lt:20}) FİYATI 20'DEN KÜCÜK OLANLAR
$lte KÜÇÜK EŞİTTİR
db.collection_name.find(‘price’:{$lte:20}) FİYATI 20'DEN KÜCÜK 20'Ye EŞİT OLANLAR
$gt BÜYÜKTÜR ANLAMI KATIYOR
db.collection_name.find(‘price’:{$gt:20}) FİYATI 20'DEN BÜYÜK OLANLAR
$gte BÜYÜK EŞİTTİR ANLAMI KATIYOR
db.collection_name.find(‘price’:{$gte:20}) FİYATI 20'DEN KÜCÜK OLANLAR
$ne EŞİT DEGİLSE ANLAMI KATIYOR
db.collection_name.find(‘price’:{$ne:20}) FİYATI 20 OLMAYANLAR GELİCEKTİR
$in VERİ İÇERSİNDE ARAMA YAPAR
db.collection_name.find(‘name’:{$in[‘ibrahim’,’sude’]}) NAME İBRAHİM VE SUDE OLANLAR GELİCEKTİR
$nin VERİ İÇERSİNDE ARAMA YAPIP ARAMA DIŞANDA KALANLAR GELİCEKTİR
db.collection_name.find(‘name’:{$nin[‘ibrahim’,’sude’]}) NAME İBRAHİM VE SUDE OLMAYANLAR GELİCEKTİR
AND — OR KULLANIMI
AND İKİ TARAFINDA TRUE TRUE OLURSA VERİLERİ GETİYOR
OR İKİ TARAFTAN BİRİ TRUE DÖNERSE ONU GETİRİYOR
db.collection_name.find({$and:[{‘name’:’ibrahim’},{‘name’:’sude’}]}) NAME İBRAHİM VE SUDE OLANLARI GETİRECEKTİR
İKİ DEGER ARASINDA BİRİ FALSE DÖNERSE SORGU ÇALIŞMAZ
db.collection_name.find({$or:[{‘name’:’ibrahim’},{‘name’:’sude’}]})NAME İBRAHİM VE SUDE OLANLARI GETİRECEKTİR
İKİ DEGER ARASINDA BİRİ BİLE ÇALIŞSA SORGU ÇALIŞIR
AND OR BİRLİKTE KULLANIMI KULLANIMI
db.mycol.find({“sayac”: {$lt:10}, $or: [{“name”: “sude”},
SAYAC 10'DAN KÜÇÜK OLANLAR GELİCEKTİR NAME İSE SUDE OLANLAR
SUDE İSMİNİ BULANAMAZ İSE SORGU YİNE ÇALIŞACAKTIR
$not VERİLEN SEÇENEKLER DIŞINDA KALANLARI GETİRİR
db.collection_name.find({$not:[{‘name’:’ibrahim’},{‘name’:’sude’}]})
NAME İBRAHİM VE SUDE OLANLARIN DIŞINDA VERİ GELİCEKTİR
VEYA
db.collection_name.find({‘sayac’:{$not:{$lt:10}}}),
SAYAC 10DAN KÜÇÜK OLANLAR GELMİYECEKTİR
MongoDB — Update Document
UPDATE , SET ,MULTİ
>db.collection_name.update(DEGİSTİRMEK_İSTEDİGNİZ_VERİ, YERİNE_GELİCEK_VERİ)
db.collection_name.update(‘name’:’ibrahim’,{$set:{‘name’:’Dilara’}})
İBRAHİM İSMİNDE OLANLARI DİLARA YAPTIK
EĞER İBRAHİM İSMİ BİRDEN FAZLAYSA SONUNA multi:true KOYUYORUZ
db.collection_name.update(‘name’:’ibrahim’,{$set:{‘name’:’Dilara’}},{multi:true})
MongoDB — Delete Document
db.collection_name.remove(SİLMEK_İSTEDİGNİZ_VERİ_KRİTERİ) BELİRLİ KRİTERDE Kİ VERİYİ SİLER
db.collection_name.remove({}) TÜM VERİLERİ SİLER
db.collection_name.remove(‘name’:’Dilara’) DİLARA OLANLAR SİLENECEKTİR
MongoDB — Projection
PROJECTİON KASTI GÖSTERİMDİR YUKARI ÖRNEKLERİ VERDİK BU SEFER BAŞKA ÖRNEKLER YAPALIM
db.collection_name.find({_id:0}) İD’Sİ SIFIR OLAN GELİCEKTİR
db.collection_name.find({‘name’:’ibrahim’})
db.collection_name.count({‘name’:’ibrahim’}) İBRAHİM İSMİNDEN KAÇ TANE VAR
db.collection_name.distinct({‘name’:’ibrahim’}) İBRAHİM İSMİNİ TEKİL YAP
MongoDB — Limiting Records
limit(LİMİT SAYISI)
skip(KAÇAR KAÇAR GİDECEK)
db.collection_name.find({‘cinsiyeti’:’erkek’}).limit(10) CİNSİYETİ ERKEK OLAN 10 KAYIT GETİRİR
db.collection_name.find({‘cinsiyeti’:’erkek’}).limit(10).skip(2) ERKEK OLAN KAYITLARI 2'ŞER 2'ŞER ATLAYARAK GETİR
MongoDB — Sorting Records
sort(‘’:-1) EN BÜYÜKTEN KÜÇÜGE DOĞRU SIRALAR
sort(‘’:1) EN KÜÇÜKTEN BÜYÜGE DOĞRU SIRALAR
YAŞI 20 BÜYÜK KİŞİLERİ KÜÇÜKTEN BÜYÜGE DOĞRU SIRALAMA
db.collection_name.find({‘yas’:{$gte:20}}).sort(‘yas’:1)
İSİMLERE GÖRE SIRALAMA
db.collection_name.find({}).sort(‘name’:1)
MongoDB — Indexing
createIndex({‘’:1}) KÜCÜKTEN BÜYÜGE
createIndex({‘’:-1}) BÜYÜKTEN KÜCÜGE
createIndex({‘’:1},{unique:true}) UNİQUE İNDEX OLUŞTURMA
createIndex({‘’:’text’}) TEXT SEARCH İNDEX
createIndex({“$**”:’text’}) TÜM TEXLERDE SEARCH İNDEX
TEXT KULLANIMI İSE
db.collection_name({$text:{$search:’aramak istenek kelime’}})
BİRDEN FAZLA ARAMAK İÇİN KELİMELER ARASI BOSLUK BIRAKILIR
KELİME HARİÇ TUTMAK İSTİYORSANIZ — KOYABİLİRSİNİZ
MongoDB — Aggregation
BİRDEN FAZLA FONSİYON OLDUĞU BİLİNDİK FONSİYONLARI BAZ ALIYORUZ
$sum TOPLAMA YAPAR
$avg ORTALAMA ALIR
$min MİNİMUN SAYIYI BULUR
$max MAX SAYIYI BULUR
$firt İLK DEĞERİ GETİRİR
$last SON DEĞERİ GETİRİR
$sort SIRALAMA YAPAR
$project KOLEKSİYONDA BELİRLİ ALANLARI SEÇMEYE YARAR
$match FİLTRELEME YAPAR
$group TOPLAMAYI YAPAR
ÖRNEKLERLE DAHA İYİ ANLAYACAKSINIZ !!
İSİMLERİ GRUPLAYIP KAÇ TANE OLDUĞUNU BULULALIM
db.collection.name.aggregate([
{$match:{}}, — FİLTRELEMEYDİ UNUTMAYALIM !
{$group:{_id:’$name’,toplam:{$sum:1}}}])
İBRAHİM İSMİNDEN KAÇ TANE VAR BULALIM
db.collection.name.aggregate([
{$match:{‘name’:’ibrahim’}}
{$group:{_id:’$name’,toplam:{$sum:1}}}])
CİNSİYETİ KADIN OLANLARI YAS ORTALAMASINI ALALIM
db.collection.name.aggregate([
{$match:{‘cinsiyet’:’kadın’}},
{$group:{_id:’$yas’,ortalama:{$avg:’$yas’}}}])
ÖRNEKLERİ ÇOĞALTABİLİRİSİNİZ YUKARDAKİ FONKSİYONLARI KULLANARAK!!
MongoDB — Create Backup
YEDEK ALMA KISMINI ANLATMAMDAN TOOLS KISMINDA Kİ EXE DOSYALARININ NE İŞE YARAGIĞINI ANLATİM
mongo.exe = KOMUT SATIRI
mongod.exe = SUNUCU YAZILIMI
mongodump.exe = YEDEK ALMA
bsondump.exe = JSON DOSYALARINI OKUMAK İÇİN MONGODB JSON DOSYALARINI BSON ŞEKLİNE ÇEVİRİYOR DİSKTE
mongoexport.exe = SUNUCULAR ARASI VERİ AKTARIMI İÇİN
mongoimport.exe = VERİ AKTARMAK İÇİN
mongorestore.exe = YEDEKTEN DÖNMEK İÇİN
mongostat.exe = SUNUCU İSTATİSTİKLERİNİ GÖRMEYE YARA
İMPORTTAN BAŞLAYALIM
PARAMETRELERİ
— host
— port
— collection
— db
— out
— quiet
— file
mongoimport — db /veri hangi db’ye yüklensin/ — quiet — file /VERİ DOSYANIZ.json/ — jsonArray
DUMP
mongodump — db /HANGİ DB YEDEKLESİN/ — collection /TABLO İSMİ/ — out /NEREYE KAYIT EDİLSİN /
MongoDB — Map Reduce
MAP İŞLEMİ = SEÇME İŞARELETME
REDUCE = AYIRMA
MONGODB’DE JAVASCRİPT KODLARIYLA YAPILIYOR
db.collection.mapReduce(
function() {emit(key,value);}, // MAP İŞLEMİ KEY VALUE DEĞERLERİ VERİYORUZ this İLE
function(key,values) {return reduceFunction}, // REDUCE İŞLEMİ
{ out: collection } // İSİM VERMEK
)
ÖRNEK
İSİME GÖRE TOPLAM HARCAMA BEN BU YAZIMDA TABLOLARIMI VERMEDİM
ZATEN ANLAŞILACAK DÜZEYDE ÖRNEKLER YAPIYORUM
var map = function(){emit(this.name,this.money);};
var reduce = function(name,money){return Array.sum{money};};
db.collection_name.mapReduce([
map,
reduce,
{out:’ciktimiz’}
])
db.ciktimiz.find()
MongoDB — GridFS
GRİDFS İSE MÜZİK SES DOSYAYISINI MONGODB ATMAMIZA OLANAK SAGLIYOR
mongofiles — d /databse adı/ put /RESİM , MÜZİK DOSYALARINIZ YOLU C:///…./
mongofiles.exe — db db_ibrahim put C:\Users\bjkli\OneDrive\Masaüstü\py\a.jpg
MongoDB — Capped Collections
COLLECTİONUN BOYUTUNU SATIR SAYISINI BELİRLEME
>db.createCollection(“collection_name”,{capped:true,size:10000,max:1000})