Linux ­Kurulu­m ve Y­onetim­i
  • Döküman Hakkında
  • Linux ve GNU'nun Geçmişi
    • CentOS, Debian ve FreeBSD Ana Sürümlerin Farkları
  • Temel Komutlar
    • Temel Terminal Komutları
    • Yardım Dosyaları
    • Dosya İzinleri, Yetkiler, Kullanıcılar ve Gruplar
    • Dosya Düzenleme Araçları
      • nano ve pico
      • vi
    • Sıkıştırılmış Dosyalar
  • Standart Girdi ve Çıktı
    • Standart Çıktı
    • Standart Girdi
    • UNIX Pipeline
    • Olmazsa Olmaz: stdio.h
    • Standart Hata ve File Descriptor
    • Forkbomb
    • Named Pipe
  • Gelişmiş Terminal Komutları
    • Tarih ve Saat Ayarlama
    • Sistem Yükünü İzleme
    • patch ve diff
    • xargs
    • awk ve sed
    • egrep ve Regular Expressions
    • rename
    • Imagemagick ve Görüntü Dosyaları
    • wget
    • Python ile Dosya Sunuculuğu
  • Temel Dağıtımlar
    • RHEL Tabanlı (CentOS, Rocky, Alma)
      • rpm Paketleri
      • DNF Paket Yöneticisi
      • Repo Ayarları
      • Network Ayarları
    • Debian
      • deb Paketleri
      • apt Paket Yöneticisi
      • Repo Ayarları
      • Network Ayarları
    • FreeBSD
      • Ports ve pkg Yönetimi
      • Güncelleme Teknikleri
      • Network Ayarları
    • Arch Linux
      • pacman ve AUR
      • Network Ayarları
    • Ortak Network Dosyaları
  • SSH
    • Uzak Sunucuya Bağlanma
    • sshd Sunucu Ayarları
    • Private ve Public Anahtarlar
    • Güvenli Dosya Aktarımı
    • sshfs
  • Kernel Boot
    • Sunucu Başlangıcına Genel Bakış
    • Çekirdeğin Yüklenmesi ve Boot Seçenekleri
    • Çekirdek Parametreleri
    • Bootloader Nedir?
  • User Space
    • Başlangıç: Init
    • Init Versiyonunu Belirlemek
    • System V
      • Servislerin Yönetimi
      • Çalışma Seviyeleri (Run Levels)
      • Örnek System V Servis Oluşturma
    • systemd
      • Servislerin Yönetimi
      • Birimler ve Birim Tipleri
      • Örnek systemd Servis Oluşturma
    • Acil Durumlar ve Tek Kullanıcı Modu
  • BASH Programlama
    • Döngüler ve Diğer Kontrol Yöntemleri
    • Menüler
  • Log Dosyaları
    • Log İnceleme ve Filtreleme
  • İnternet Servisleri
    • Bir sayfanın İnternetteki Serüveni
    • Nameserver Servisleri
    • Apache
    • PHP-FPM
    • FTP/FTPS/SFTP
      • vsftpd
      • ProFTPD
      • SFTP
      • Komut Satırından ftp Kullanımı
  • Zamanlanmış Görevler
    • crontab
    • at
  • Veritabanı
    • MySQL
      • MySQL Kurulumu
      • MySQL Servisini Çalıştırmak
      • Veritabanı ve Tablo oluşturmak
      • SQL Tablosuna Veri Eklemek
      • Temel SQL Sorgularına Giriş
        • Birinci bölüm
      • mysqldump ile yedekleme
      • Replikasyon teknikleri
      • Yedekleri içeri alma
    • PostgreSQL
      • PostgreSQL Kurulumu
      • Temel Yapılandırma
      • Temel Kullanım
    • MongoDB
      • MongoDB Kurulumu
      • Temel Yapılandırma
      • Temel Kullanım
    • Redis
      • Redis Kurulumu
      • Temel Yapılandırma
      • Temel Kullanım
  • Temel Network Yapılandırması
  • Gelişmiş Network Komutları
    • ip
    • ifconfig
    • route
    • ping
    • traceroute
    • dig
    • nslookup
    • netcat
    • nmap
    • tcpdump
    • Wireshark (Giriş)
    • Bantgenişliği Ölçümü
  • Güvenlik
    • Firewalld
    • IPTables
      • Temel İzinler
      • IP ve Port Engelleme
    • selinux
  • Disk Sistemleri
    • ext
    • zfs
    • lvm
  • RAID
    • RAID Biçimleri
    • Verinin Disklere Yayılması
    • Cache
    • Terimler ve Tavsiyeler
  • Örnek Kurulumlar ve Modern Yaklaşımlar
    • CentOS 7 Tam Sistem Kurulumu (Arşiv)
    • AlmaLinux ile Hosting Ortamı Kurulumu
    • Ubuntu ile Hosting Ortamı Kurulumu
    • Modern Hosting Yaklaşımları (PaaS, Coolify vb.)
  • Konteynerleştirme (Docker / Podman)
  • Yapılandırma Yönetimi (Ansible)
  • İzleme ve Uyarı (Prometheus / Grafana)
  • Nginx Web Sunucusu
  • Kubernetes (Giriş)
  • PCI-DSS ve Linux Sistemleri
  • İndeks
  • Kaynaklar
Powered by GitBook
On this page
  • Bağlantı Kurma (mongosh)
  • Temel mongosh Komutları
  • Temel Veri İşlemleri (CRUD)
  1. Veritabanı
  2. MongoDB

Temel Kullanım

Bu bölümde MongoDB'ye nasıl bağlanılacağı ve temel veritabanı/koleksiyon işlemlerinin (veri ekleme, sorgulama, güncelleme, silme vb.) nasıl yapılacağı anlatılacaktır.

Bağlantı Kurma (mongosh)

MongoDB ile etkileşim kurmak için modern komut satırı aracı mongosh'tur (eski araç mongo idi).

  • Yerel Sunucuya Bağlanma: Eğer MongoDB sunucusu yerelde çalışıyorsa ve kimlik doğrulama kapalıysa, doğrudan mongosh komutu ile bağlanabilirsiniz:

    mongosh

    Bu komut varsayılan olarak mongodb://127.0.0.1:27017 adresine bağlanır ve test veritabanını kullanır.

  • Belirli Bir Sunucuya ve Porta Bağlanma: Farklı bir sunucuya veya porta bağlanmak için bağlantı dizesi (connection string) kullanılır:

    mongosh "mongodb://sunucu_adresi:port"
  • Kimlik Doğrulama ile Bağlanma: Eğer kimlik doğrulama (security.authorization: enabled) aktifse, kullanıcı adı, parola ve kimlik doğrulama veritabanını belirtmeniz gerekir:

    mongosh "mongodb://kullanici_adi:parola@sunucu_adresi:port/?authSource=admin"

    Not: authSource genellikle kullanıcıların tanımlandığı veritabanıdır (çoğunlukla admin).

Temel mongosh Komutları

mongosh kabuğu içindeyken JavaScript benzeri bir sözdizimi ve özel komutlar kullanılır.

  • Veritabanlarını Listeleme:

    show dbs
  • Mevcut Veritabanını Gösterme:

    db
  • Veritabanı Değiştirme/Oluşturma: Olmayan bir veritabanı adı kullanıldığında, içine ilk veri eklendiği anda otomatik olarak oluşturulur.

    use yeni_veritabani
  • Koleksiyonları (Collections) Listeleme:

    show collections
  • Yardım:

    help
  • Çıkış:

    exit
    // veya
    quit()

Temel Veri İşlemleri (CRUD)

MongoDB'de veriler BSON (Binary JSON) formatında dökümanlar olarak saklanır ve bu dökümanlar koleksiyonlar içinde gruplanır.

  • Veri Ekleme (Create):insertOne() (tek döküman) veya insertMany() (çoklu döküman) kullanılır.

    // 'urunler' adında bir koleksiyona tek bir döküman ekleme
    db.urunler.insertOne({ adi: "Laptop", fiyat: 1500, kategori: "Elektronik" })
    
    // Birden fazla döküman ekleme
    db.urunler.insertMany([
      { adi: "Klavye", fiyat: 75, kategori: "Aksesuar" },
      { adi: "Monitor", fiyat: 300, kategori: "Elektronik" }
    ])

    Eğer urunler koleksiyonu yoksa, ilk ekleme işleminde otomatik olarak oluşturulur.

  • Veri Okuma (Read):find() (tüm eşleşenleri bulur) veya findOne() (ilk eşleşeni bulur) kullanılır. Filtreleme için sorgu dökümanları kullanılır.

    // 'urunler' koleksiyonundaki tüm dökümanları bulma
    db.urunler.find()
    
    // Kategori'si "Elektronik" olan ürünleri bulma
    db.urunler.find({ kategori: "Elektronik" })
    
    // Fiyatı 100'den büyük olan ürünleri bulma ($gt: greater than)
    db.urunler.find({ fiyat: { $gt: 100 } })
    
    // Sadece ilk eşleşen elektronik ürünü bulma
    db.urunler.findOne({ kategori: "Elektronik" })

    find() sonucu bir imleç (cursor) döndürür. Tüm sonuçları görmek için genellikle .pretty() metodu eklenir: db.urunler.find().pretty()

  • Veri Güncelleme (Update):updateOne() (ilk eşleşeni günceller) veya updateMany() (tüm eşleşenleri günceller) kullanılır. İlk argüman filtre, ikinci argüman güncelleme operatörlerini içeren dökümandır ($set, $inc vb.).

    // 'Laptop' ürününün fiyatını güncelleme
    db.urunler.updateOne(
      { adi: "Laptop" },
      { $set: { fiyat: 1450, stok: 10 } } // fiyat'ı değiştir, stok alanını ekle
    )
    
    // Tüm Aksesuar kategorisindeki ürünlerin fiyatını %10 artırma ($mul: multiply)
    db.urunler.updateMany(
      { kategori: "Aksesuar" },
      { $mul: { fiyat: 1.10 } }
    )
  • Veri Silme (Delete):deleteOne() (ilk eşleşeni siler) veya deleteMany() (tüm eşleşenleri siler) kullanılır. Argüman olarak filtre dökümanı alır.

    // 'Klavye' ürününü silme
    db.urunler.deleteOne({ adi: "Klavye" })
    
    // Fiyatı 300'den düşük olan tüm ürünleri silme ($lt: less than)
    db.urunler.deleteMany({ fiyat: { $lt: 300 } })
PreviousTemel YapılandırmaNextRedis

Last updated 1 month ago