Bu gönderi bilgisayar kullanmayı bilen, okuduğunu anlayan, tercihen JavaScript bilgisi olan web programcılarına yöneliktir.
MongoDB benim gözümde en iyi veritabanı sistemidir. Cross-platform, doküman bazlı NoSQL bir veritabanıdır. Girdiler JSON benzeri dokümanlarla tutulur. Ben büyük bir sosyal medya platformunu da MongoDB veritabanı kullanarak yarattım.
Buradan indir.
www.mongodb.com
Windows'a kuruyorsan MongoDB Compass'ı da kur. Debian tabanlı bir GNU/Linux sisteme kuruyorsan APT'den
Compass şu oluyor. Local veya uzaktaki sunucuya bağlanabiliyorsun. Uzak sunucuya bağlanıyorsanız şifrelemeyi ve SSL kullanmayı unutmayın yoksa zortlarsınız. Ben yerelde Windows sunucularda Linux kullanıyorum. Aralarında doküman alışverişi de yapabiliyorlar zaten.
Bunların çok detayına girmeyeceğim sadece Express.JS altında
[CODE lang="javascript" title="Bağlantı Kurmak"]const { MongoClient } = require('mongodb');
// Bağlantı URL'i. Buna kullanıcı adı şifre de yazıyorsun eğer sunucudaysan ama yani onun için de git doküman oku.
const url = 'mongodb://localhost:27017';
const client = new MongoClient(url);
// Veritabanı adı. Şu Compass ekran görüntüsünde soldaki şeyler ayrı ayrı veritabanları oluyor.
const dbName = 'myDatabase';
async function connect() {
try {
await client.connect();
console.log('Bağlandık knk.');
const db = client.db(dbName);
return db;
} catch (err) {
console.error(err);
}
}
connect();[/CODE]
Bağlantı bu şekilde kuruyoruz. Bunu ayrı bir modüle, onu da bir middleware'e bağlarsanız, her routeunuzda yani endpointinizde veritabanınıza erişebilirsiniz. En azından benim yoğurt yiyişim öyle. Sizin öyle değilse yorumlarda küfür edin
Bir doküman eklemek.
Gördüğünüz gibi "myDatabase" isimli veritabanında "documents" isimli koleksiyona bir obje ekledim. Ekleyebildiğiniz tüm veri tiplerini şöyle göstereyim.
Birden fazla doküman eklemek.
Bir dokümanı bulmak ve döndürmek.
document değişkeninin değeri:
Birden fazla doküman bulmak.
gte operatörü Greater Than demek. Eğer bunun "büyükse" anlamına geldiğini benden şu an öğreniyorsanız mesleği bırakın ve İngilizce çalışmaya başlayın. 25 yaşından büyükleri döndürecek bu. findOne yerine find yapıyoruz ki birden fazla doküman arasın. Bir de .toArray() methodunu da kullanıyoruz ki arraye çevirsin. Diğer operatörler ve daha fazlası dokümanda yer alıyor. Bunlar sadece başlangıç snippetleri olacak.
Var olan dokümanı güncellemek.
Recep isimli dokümanı bulup age değerini 90 yaptı güncelledi yuppi 
MongoDB dokümanları atomiktir.
☝ Yani hocam bu ne demek oluyor? İşlemler aynı anda da yapılsa, aynı doküman aynı anda da güncellense bunlar hem sıraya alınır hem de bir dokümanın farklı yerlerini güncelleyebilirsiniz. MongoDB motoru buna izin verir.
Birden fazla dokümanı aynı anda güncellemek.
Yaşı 25'den büyük olanlara
Bir dokümandaki array'e yeni değer pushlamak. Burada hobbies bir array yani.
Doküman silmek
Birden fazla doküman silmek.
Yaşı 28'den küçük olanları siliyor. lt = lower than.
www.mongodb.com
Bilerek kısa tuttum. Yoksa daha indexler, aggregationlar, bulup değiştirmeler, bulup modifiye etmeler, toplu yazım işlemleri, sayım işlemleri ve daha niceleri var.
Tabii yeni başlayanlar için de değil bu post. Ama siz yine de sorularınız olursa çekinmeden sorun.
Öğrenmek istiyorum hocam:
MongoDB benim gözümde en iyi veritabanı sistemidir. Cross-platform, doküman bazlı NoSQL bir veritabanıdır. Girdiler JSON benzeri dokümanlarla tutulur. Ben büyük bir sosyal medya platformunu da MongoDB veritabanı kullanarak yarattım.
Buradan indir.
Download MongoDB Community Server
Download MongoDB Community Server non-relational database to take your next big project to a higher level!
Windows'a kuruyorsan MongoDB Compass'ı da kur. Debian tabanlı bir GNU/Linux sisteme kuruyorsan APT'den
mongodb-org paketini indireceksin zaten.Compass şu oluyor. Local veya uzaktaki sunucuya bağlanabiliyorsun. Uzak sunucuya bağlanıyorsanız şifrelemeyi ve SSL kullanmayı unutmayın yoksa zortlarsınız. Ben yerelde Windows sunucularda Linux kullanıyorum. Aralarında doküman alışverişi de yapabiliyorlar zaten.
Bunların çok detayına girmeyeceğim sadece Express.JS altında
mongodb paketini kullanarak nasıl utilize ediliğini göstereceğim küçük küçük snippetler ile. Mongoose diye paket de var, şema desteği falan var ama o bebekler için. Onun konusunu da başkası açsın.[CODE lang="javascript" title="Bağlantı Kurmak"]const { MongoClient } = require('mongodb');
// Bağlantı URL'i. Buna kullanıcı adı şifre de yazıyorsun eğer sunucudaysan ama yani onun için de git doküman oku.
const url = 'mongodb://localhost:27017';
const client = new MongoClient(url);
// Veritabanı adı. Şu Compass ekran görüntüsünde soldaki şeyler ayrı ayrı veritabanları oluyor.
const dbName = 'myDatabase';
async function connect() {
try {
await client.connect();
console.log('Bağlandık knk.');
const db = client.db(dbName);
return db;
} catch (err) {
console.error(err);
}
}
connect();[/CODE]
Bağlantı bu şekilde kuruyoruz. Bunu ayrı bir modüle, onu da bir middleware'e bağlarsanız, her routeunuzda yani endpointinizde veritabanınıza erişebilirsiniz. En azından benim yoğurt yiyişim öyle. Sizin öyle değilse yorumlarda küfür edin
Bir doküman eklemek.
JavaScript:
const collection = db.collection('documents');
await collection.insertOne({ name: 'Recep', age: 37 });
Gördüğünüz gibi "myDatabase" isimli veritabanında "documents" isimli koleksiyona bir obje ekledim. Ekleyebildiğiniz tüm veri tiplerini şöyle göstereyim.
Birden fazla doküman eklemek.
JavaScript:
await collection.insertMany([{ name: 'Recep', age: 37 }, { name: 'Yonga', age: 23 }]);
Bir dokümanı bulmak ve döndürmek.
JavaScript:
const document = await collection.findOne({ name: 'Recep' });
document değişkeninin değeri:
JSON:
{
_id: new ObjectId('66a754e4ed8c6e6be2403985'),
name: 'Recep',
age: 37
}
Birden fazla doküman bulmak.
JavaScript:
await collection.find({ age: { $gte: 25 } }).toArray();
gte operatörü Greater Than demek. Eğer bunun "büyükse" anlamına geldiğini benden şu an öğreniyorsanız mesleği bırakın ve İngilizce çalışmaya başlayın. 25 yaşından büyükleri döndürecek bu. findOne yerine find yapıyoruz ki birden fazla doküman arasın. Bir de .toArray() methodunu da kullanıyoruz ki arraye çevirsin. Diğer operatörler ve daha fazlası dokümanda yer alıyor. Bunlar sadece başlangıç snippetleri olacak.
Var olan dokümanı güncellemek.
JavaScript:
await collection.updateOne({ name: 'Recep' }, { $set: { age: 90 } });
MongoDB dokümanları atomiktir.
Birden fazla dokümanı aynı anda güncellemek.
JavaScript:
await collection.updateMany({ age: { $gte: 25 } }, { $set: { status: 'active' } });
Yaşı 25'den büyük olanlara
status: active diye bir girdi ekledi.Bir dokümandaki array'e yeni değer pushlamak. Burada hobbies bir array yani.
JavaScript:
await collection.updateOne({ name: 'Recep' }, { $push: { hobbies: 'reading' } });
Doküman silmek
JavaScript:
await collection.deleteOne({ name: 'Yonga' });
Birden fazla doküman silmek.
JavaScript:
await collection.deleteMany({ age: { $lt: 28 } });
Yaşı 28'den küçük olanları siliyor. lt = lower than.
Query and Projection Operators
Learn about the query and projection operators in MongoDB. These query selectors, projection operators, and miscellaneous operators help with advanced querying and projection.
Bilerek kısa tuttum. Yoksa daha indexler, aggregationlar, bulup değiştirmeler, bulup modifiye etmeler, toplu yazım işlemleri, sayım işlemleri ve daha niceleri var.
Tabii yeni başlayanlar için de değil bu post. Ama siz yine de sorularınız olursa çekinmeden sorun.
Öğrenmek istiyorum hocam: