logo
eng-flag

MongoDB Notları ve İpuçları

İçindekiler

  1. Temel Komutlar
  2. Veritabanı İşlemleri
  3. Koleksiyon İşlemleri
  4. Belge İşlemleri
  5. Veri Sorgulama
  6. Güncelleme İşlemleri
  7. Silme İşlemleri
  8. Agregasyon
  9. İndeksleme
  10. Kullanıcı Yönetimi
  11. Yedekleme ve Geri Yükleme
  12. Replikasyon
  13. Sharding
  14. Performans Ayarları

Temel Komutlar

MongoDB'yi Başlat

mongod

MongoDB'ye Bağlan

mongo

Mevcut Veritabanını Göster

db

Tüm Veritabanlarını Göster

show dbs

Bir Veritabanına Geçiş Yap

use database_name

Mevcut Veritabanındaki Tüm Koleksiyonları Göster

show collections

Veritabanı İşlemleri

Yeni Bir Veritabanı Oluştur

use new_database

Bir Veritabanını Sil

use database_to_drop
db.dropDatabase()

Koleksiyon İşlemleri

Yeni Bir Koleksiyon Oluştur

db.createCollection("collection_name")

Bir Koleksiyonu Sil

db.collection_name.drop()

Belge İşlemleri

Bir Belge Ekle

db.collection_name.insertOne({
  field1: "value1",
  field2: "value2"
})

Birden Fazla Belge Ekle

db.collection_name.insertMany([
  { field1: "value1", field2: "value2" },
  { field1: "value3", field2: "value4" }
])

Veri Sorgulama

Bir Koleksiyon İçindeki Tüm Belgeleri Bul

db.collection_name.find()

Belirli Bir Koşula Uyan Belgeleri Bul

db.collection_name.find({ field: "value" })

Tek Bir Belge Bul

db.collection_name.findOne({ field: "value" })

Sonuçları Sınırlama

db.collection_name.find().limit(5)

Sonuçları Sıralama

db.collection_name.find().sort({ field: 1 })  // 1 artan, -1 azalan sıralama

Belgeleri Sayma

db.collection_name.countDocuments({ field: "value" })

Karşılaştırma Operatörleri

db.collection_name.find({ field: { $gt: value } })  // büyük
db.collection_name.find({ field: { $lt: value } })  // küçük
db.collection_name.find({ field: { $gte: value } }) // büyük veya eşit
db.collection_name.find({ field: { $lte: value } }) // küçük veya eşit
db.collection_name.find({ field: { $ne: value } })  // eşit değil
db.collection_name.find({ field: { $in: [value1, value2] } }) // dizide

Mantıksal Operatörler

db.collection_name.find({ $and: [{ field1: "value1" }, { field2: "value2" }] })
db.collection_name.find({ $or: [{ field1: "value1" }, { field2: "value2" }] })
db.collection_name.find({ field: { $not: { $eq: value } } })

Güncelleme İşlemleri

Tek Bir Belgeyi Güncelle

db.collection_name.updateOne(
  { field: "value" },
  { $set: { field_to_update: "new_value" } }
)

Birden Fazla Belgeyi Güncelle

db.collection_name.updateMany(
  { field: "value" },
  { $set: { field_to_update: "new_value" } }
)

Bir Belgeyi Değiştir

db.collection_name.replaceOne(
  { field: "value" },
  { new_field1: "new_value1", new_field2: "new_value2" }
)

Silme İşlemleri

Tek Bir Belgeyi Sil

db.collection_name.deleteOne({ field: "value" })

Birden Fazla Belgeyi Sil

db.collection_name.deleteMany({ field: "value" })

Agregasyon

Temel Agregasyon

db.collection_name.aggregate([
  { $match: { field: "value" } },
  { $group: { _id: "$group_field", total: { $sum: "$sum_field" } } },
  { $sort: { total: -1 } }
])

Agregasyon Aşamaları

// $match
db.collection_name.aggregate([
  { $match: { status: "active" } }
])

// $group
db.collection_name.aggregate([
  { $group: { _id: "$category", count: { $sum: 1 } } }
])

// $project
db.collection_name.aggregate([
  { $project: { field1: 1, field2: 1, _id: 0 } }
])

// $sort
db.collection_name.aggregate([
  { $sort: { field: 1 } }
])

// $limit
db.collection_name.aggregate([
  { $limit: 5 }
])

// $unwind
db.collection_name.aggregate([
  { $unwind: "$array_field" }
])

İndeksleme

Bir İndeks Oluştur

db.collection_name.createIndex({ field: 1 })  // 1 artan, -1 azalan sıralama

Bir Benzersiz İndeks Oluştur

db.collection_name.createIndex({ field: 1 }, { unique: true })

Tüm İndeksleri Listele

db.collection_name.getIndexes()

Bir İndeksi Sil

db.collection_name.dropIndex("index_name")

Kullanıcı Yönetimi

Bir Kullanıcı Oluştur

db.createUser({
  user: "username",
  pwd: "password",
  roles: [{ role: "readWrite", db: "database_name" }]
})

Kullanıcıya Roller Ver

db.grantRolesToUser(
  "username",
  [{ role: "readWrite", db: "database_name" }]
)

Kullanıcıları Göster

db.getUsers()

Bir Kullanıcıyı Sil

db.dropUser("username")

Yedekleme ve Geri Yükleme

Bir Yedek Oluştur

mongodump --db database_name --out backup_directory

Yedekten Geri Yükle

mongorestore --db database_name backup_directory

Replikasyon

Bir Replikasyon Seti Yapılandır

MongoDB yapılandırma dosyasında (mongod.conf):

replication:
  replSetName: "rs0"

Replikasyon Setini Başlat

rs.initiate()

Replikasyon Setine Üye Ekle

rs.add("hostname:port")

Replikasyon Seti Durumunu Kontrol Et

rs.status()

Sharding

Bir Veritabanı İçin Sharding'i Etkinleştir

sh.enableSharding("database_name")

Bir Koleksiyon İçin Sharding'i Etkinleştir

sh.shardCollection("database_name.collection_name", { shard_key: 1 })

Performans Ayarları

Bir Koleksiyonun Performansını Analiz Et

db.collection_name.stats()

Sorgu Performansını Analiz Et

db.collection_name.find({ field: "value" }).explain("executionStats")

2024 © Tüm hakları saklıdır - buraxta.com