{"id":37558,"date":"2026-01-09T00:21:26","date_gmt":"2026-01-08T21:21:26","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/mongodb-nedir-ve-neden-ubuntuda-tercih-edilir\/"},"modified":"2026-01-09T00:21:26","modified_gmt":"2026-01-08T21:21:26","slug":"mongodb-nedir-ve-neden-ubuntuda-tercih-edilir","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/mongodb-nedir-ve-neden-ubuntuda-tercih-edilir\/","title":{"rendered":"MongoDB Nedir ve Neden Ubuntu&#8217;da Tercih Edilir?"},"content":{"rendered":"<style>\n    \/* Temel Stil Ayarlar\u0131 *\/\n    body {\n        font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;\n        line-height: 1.7;\n        color: #333;\n        margin: 0 auto;\n        padding: 20px;\n        max-width: 900px;\n        background-color: #f9f9f9;\n    }<\/p>\n<p>    h1 {\n        color: #2c3e50;\n        font-size: 2.5em;\n        margin-bottom: 20px;\n        text-align: center;\n    }<\/p>\n<p>    h2 {\n        color: #2980b9;\n        font-size: 1.8em;\n        margin-top: 40px;\n        margin-bottom: 15px;\n        border-bottom: 2px solid #e7e7e7;\n        padding-bottom: 10px;\n    }<\/p>\n<p>    h3 {\n        color: #34495e;\n        font-size: 1.4em;\n        margin-top: 30px;\n        margin-bottom: 10px;\n    }<\/p>\n<p>    p {\n        margin-bottom: 15px;\n        text-align: justify;\n    }<\/p>\n<p>    ul, ol {\n        margin-bottom: 15px;\n        padding-left: 25px;\n    }<\/p>\n<p>    li {\n        margin-bottom: 8px;\n    }<\/p>\n<p>    code {\n        background-color: #eef;\n        padding: 2px 4px;\n        border-radius: 3px;\n        font-family: 'Consolas', 'Monaco', monospace;\n        color: #c0392b;\n    }<\/p>\n<p>    .code-block {\n        background-color: #2d2d2d;\n        color: #f8f8f2;\n        padding: 15px;\n        border-radius: 8px;\n        overflow-x: auto;\n        margin-bottom: 20px;\n        font-family: 'Consolas', 'Monaco', monospace;\n        font-size: 0.9em;\n    }<\/p>\n<p>    .code-block pre {\n        margin: 0;\n        white-space: pre-wrap; \/* Uzun sat\u0131rlar\u0131 otomatik sarar *\/\n        word-wrap: break-word; \/* Kelimeleri de b\u00f6lebilir *\/\n    }<\/p>\n<p>    .expert-tip {\n        background-color: #ecf0f1;\n        border-left: 5px solid #2ecc71;\n        padding: 15px;\n        margin: 20px 0;\n        border-radius: 5px;\n        font-style: italic;\n        color: #2c3e50;\n    }<\/p>\n<p>    .expert-tip strong {\n        color: #27ae60;\n    }<\/p>\n<p>    \/* Tablo Stil Ayarlar\u0131 *\/\n    table {\n        width: 100%;\n        border-collapse: collapse;\n        margin-bottom: 20px;\n    }<\/p>\n<p>    th, td {\n        border: 1px solid #ddd;\n        padding: 10px;\n        text-align: left;\n    }<\/p>\n<p>    th {\n        background-color: #f2f2f2;\n        color: #333;\n    }<\/p>\n<p>    \/* Duyarl\u0131 Tasar\u0131m (Responsive Design) *\/\n    @media (max-width: 768px) {\n        body {\n            padding: 15px;\n        }<\/p>\n<p>        h1 {\n            font-size: 2em;\n        }<\/p>\n<p>        h2 {\n            font-size: 1.5em;\n        }<\/p>\n<p>        h3 {\n            font-size: 1.2em;\n        }<\/p>\n<p>        .code-block {\n            padding: 10px;\n        }\n    }<\/p>\n<p>    @media (max-width: 480px) {\n        body {\n            padding: 10px;\n        }<\/p>\n<p>        h1 {\n            font-size: 1.8em;\n        }<\/p>\n<p>        h2 {\n            font-size: 1.3em;\n        }<\/p>\n<p>        h3 {\n            font-size: 1.1em;\n        }\n    }\n<\/style>\n<h1>MongoDB Kurulumu Ubuntu&#8217;da: Ad\u0131m Ad\u0131m Rehber<\/h1>\n<p>Ubuntu i\u015fletim sisteminde MongoDB&#8217;yi sorunsuz bir \u015fekilde nas\u0131l kuraca\u011f\u0131n\u0131z\u0131 merak m\u0131 ediyorsunuz? Bu kapsaml\u0131 rehber, ad\u0131m ad\u0131m kurulumdan ileri d\u00fczey yap\u0131land\u0131rmaya kadar t\u00fcm s\u00fcreci detayl\u0131ca a\u00e7\u0131kl\u0131yor. Modern uygulamalar\u0131n\u0131z i\u00e7in g\u00fc\u00e7l\u00fc bir veri taban\u0131 altyap\u0131s\u0131 kurmaya haz\u0131r olun.<\/p>\n<p>G\u00fcn\u00fcm\u00fcz\u00fcn h\u0131zla de\u011fi\u015fen dijital d\u00fcnyas\u0131nda, veriler her zamankinden daha \u00f6nemli hale geldi. Geleneksel ili\u015fkisel veri tabanlar\u0131n\u0131n (SQL) belirli senaryolarda yetersiz kald\u0131\u011f\u0131 durumlarda, NoSQL veri tabanlar\u0131 esneklikleri ve \u00f6l\u00e7eklenebilirlikleri ile \u00f6ne \u00e7\u0131k\u0131yor. \u0130\u015fte tam da bu noktada, dok\u00fcman tabanl\u0131 bir NoSQL veri taban\u0131 olan MongoDB devreye giriyor. \u00d6zellikle b\u00fcy\u00fck veri setleri, esnek \u015fema gerektiren uygulamalar ve y\u00fcksek performans beklentileri olan projelerde MongoDB, geli\u015ftiricilerin vazge\u00e7ilmezi haline gelmi\u015ftir. Bu rehberimizde, d\u00fcnyan\u0131n en pop\u00fcler a\u00e7\u0131k kaynak i\u015fletim sistemlerinden biri olan Ubuntu \u00fczerinde MongoDB kurulumunun t\u00fcm detaylar\u0131n\u0131 ele alaca\u011f\u0131z. Ba\u015flang\u0131\u00e7 seviyesindeki kullan\u0131c\u0131lardan deneyimli geli\u015ftiricilere kadar herkesin faydalanabilece\u011fi, uygulamal\u0131 ve ad\u0131m ad\u0131m bir kurulum s\u00fcreci sunaca\u011f\u0131z. Haz\u0131rsan\u0131z, bu g\u00fc\u00e7l\u00fc veri taban\u0131n\u0131 sistemimize entegre etmeye ba\u015flayal\u0131m.<\/p>\n<h2>MongoDB Nedir ve Neden Ubuntu&#8217;da Tercih Edilir?<\/h2>\n<p>MongoDB, modern web uygulamalar\u0131n\u0131n ve b\u00fcy\u00fck \u00f6l\u00e7ekli veri depolama ihtiya\u00e7lar\u0131n\u0131n kar\u015f\u0131lanmas\u0131 i\u00e7in tasarlanm\u0131\u015f, a\u00e7\u0131k kaynakl\u0131, dok\u00fcman tabanl\u0131 bir NoSQL veri taban\u0131d\u0131r. &#8220;NoSQL&#8221; terimi, &#8220;Not Only SQL&#8221; (Sadece SQL de\u011fil) anlam\u0131na gelir ve geleneksel ili\u015fkisel veri tabanlar\u0131ndan farkl\u0131 bir veri modeline sahip veri tabanlar\u0131n\u0131 ifade eder. MongoDB&#8217;de veriler, JSON benzeri BSON (Binary JSON) format\u0131nda depolan\u0131r ve bu da geli\u015ftiricilere inan\u0131lmaz bir esneklik sunar. Bir tablo ve sat\u0131rlar yerine, MongoDB koleksiyonlar ve belgeler (documents) kullan\u0131r. Her belge, farkl\u0131 alanlara sahip olabilir, bu da \u015fema esnekli\u011fi sa\u011flar ve veri modelleme s\u00fcrecini basitle\u015ftirir. \u00d6rne\u011fin, bir e-ticaret uygulamas\u0131nda farkl\u0131 \u00fcr\u00fcn t\u00fcrlerinin (kitap, elektronik, giyim) tamamen farkl\u0131 \u00f6zelliklere sahip olmas\u0131 durumunda, her \u00fcr\u00fcn tipini tek bir koleksiyonda depolayabilir ve her belgeye \u00f6zg\u00fc alanlar ekleyebilirsiniz. Bu durum, geleneksel SQL veri tabanlar\u0131nda karma\u015f\u0131k bir denormalizasyon veya \u00e7ok say\u0131da tablo gerektirebilirken, MongoDB ile \u00e7ok daha do\u011fal ve verimli bir \u015fekilde y\u00f6netilir.<\/p>\n<p>MongoDB&#8217;nin sundu\u011fu temel avantajlar aras\u0131nda y\u00fcksek performans, y\u00fcksek eri\u015filebilirlik (replika setleri sayesinde) ve yatay \u00f6l\u00e7eklenebilirlik (sharding ile) yer al\u0131r. Bu \u00f6zellikler, \u00f6zellikle s\u00fcrekli b\u00fcy\u00fcyen ve de\u011fi\u015fen veri ihtiya\u00e7lar\u0131 olan uygulamalar i\u00e7in kritik \u00f6neme sahiptir. Geli\u015ftiriciler, esnek \u015fema yap\u0131s\u0131 sayesinde h\u0131zl\u0131 prototipleme yapabilir ve uygulama gereksinimleri de\u011fi\u015ftik\u00e7e veri modellerini kolayca adapte edebilirler. Bu da geli\u015ftirme s\u00fcre\u00e7lerini h\u0131zland\u0131r\u0131r ve pazar ko\u015fullar\u0131na daha \u00e7abuk yan\u0131t verilmesini sa\u011flar.<\/p>\n<p>Peki, neden \u00f6zellikle Ubuntu \u00fczerinde MongoDB kurulumunu tercih etmeliyiz? Ubuntu, sunucu ortamlar\u0131nda en \u00e7ok tercih edilen Linux da\u011f\u0131t\u0131mlar\u0131ndan biridir. Kararl\u0131l\u0131\u011f\u0131, geni\u015f topluluk deste\u011fi, d\u00fczenli g\u00fcvenlik g\u00fcncellemeleri ve zengin paket depolar\u0131 sayesinde, hem geli\u015ftiriciler hem de sistem y\u00f6neticileri i\u00e7in ideal bir platform sunar. \u00c7o\u011fu bulut sa\u011flay\u0131c\u0131s\u0131, varsay\u0131lan olarak Ubuntu tabanl\u0131 sunucular\u0131 \u00f6nermektedir. Bu da, geli\u015ftirme ortam\u0131ndan \u00fcretim ortam\u0131na ge\u00e7i\u015fte tutarl\u0131l\u0131k ve kolayl\u0131k sa\u011flar. Ayr\u0131ca, MongoDB&#8217;nin resmi olarak Ubuntu i\u00e7in optimize edilmi\u015f paketleri bulunmas\u0131, kurulum ve bak\u0131m s\u00fcre\u00e7lerini olduk\u00e7a basitle\u015ftirir. G\u00fc\u00e7l\u00fc komut sat\u0131r\u0131 ara\u00e7lar\u0131 ve kapsaml\u0131 dok\u00fcmantasyon deste\u011fi ile Ubuntu, MongoDB&#8217;nin t\u00fcm yeteneklerini en verimli \u015fekilde kullanmak i\u00e7in sa\u011flam bir zemin haz\u0131rlar. Bu kombinasyon, \u00f6zellikle web uygulamalar\u0131, mobil arka u\u00e7lar, IoT \u00e7\u00f6z\u00fcmleri ve b\u00fcy\u00fck veri analizi gibi \u00e7e\u015fitli projelerde g\u00fcvenilir ve y\u00fcksek performansl\u0131 bir veri taban\u0131 altyap\u0131s\u0131 olu\u015fturmak isteyenler i\u00e7in bi\u00e7ilmi\u015f kaftand\u0131r. Bu nedenle, Ubuntu&#8217;da MongoDB kurulumu, modern uygulama geli\u015ftirme yolculu\u011funuzda ataca\u011f\u0131n\u0131z sa\u011flam bir ad\u0131md\u0131r.<\/p>\n<h2>Ubuntu Sisteminizi MongoDB Kurulumuna Haz\u0131rlamak Nas\u0131l Yap\u0131l\u0131r?<\/h2>\n<p>MongoDB kurulumuna ba\u015flamadan \u00f6nce, Ubuntu sisteminizin en g\u00fcncel durumda oldu\u011fundan ve gerekli \u00f6n ko\u015fullar\u0131n kar\u015f\u0131land\u0131\u011f\u0131ndan emin olmam\u0131z gerekiyor. Bu ad\u0131m, herhangi bir yaz\u0131l\u0131m kurulumunda kar\u015f\u0131la\u015f\u0131labilecek potansiyel sorunlar\u0131 minimize etmek ve sisteminizin g\u00fcvenli\u011fini sa\u011flamak a\u00e7\u0131s\u0131ndan hayati \u00f6neme sahiptir. \u0130lk olarak, sisteminizdeki mevcut paket listelerini g\u00fcncellemek ve kurulu paketleri en son s\u00fcr\u00fcmlerine y\u00fckseltmekle i\u015fe ba\u015flayaca\u011f\u0131z. Bu i\u015flem, hem g\u00fcvenlik a\u00e7\u0131klar\u0131n\u0131 kapat\u0131r hem de yeni yaz\u0131l\u0131mlar\u0131n do\u011fru ba\u011f\u0131ml\u0131l\u0131klarla kurulmas\u0131n\u0131 sa\u011flar.<\/p>\n<p>Terminali a\u00e7\u0131n (genellikle <code>Ctrl + Alt + T<\/code> k\u0131sayolu ile) ve a\u015fa\u011f\u0131daki komutlar\u0131 s\u0131ras\u0131yla \u00e7al\u0131\u015ft\u0131r\u0131n:<\/p>\n<div class=\"code-block\">\n<pre>\nsudo apt update\nsudo apt upgrade -y\n<\/pre>\n<\/div>\n<p>\u0130lk komut olan <code>sudo apt update<\/code>, Ubuntu&#8217;nun paket y\u00f6neticisi olan APT&#8217;nin (Advanced Package Tool) yerel paket indeksini g\u00fcnceller. Bu, sisteminizin hangi paketlerin hangi s\u00fcr\u00fcmlerinin mevcut oldu\u011fu hakk\u0131nda bilgi sahibi olmas\u0131n\u0131 sa\u011flar. \u0130kinci komut olan <code>sudo apt upgrade -y<\/code> ise, mevcut kurulu t\u00fcm paketleri en son s\u00fcr\u00fcmlerine y\u00fckseltir. <code>-y<\/code> parametresi, y\u00fckseltme s\u0131ras\u0131nda sorulan t\u00fcm &#8220;Evet\/Hay\u0131r&#8221; sorular\u0131na otomatik olarak &#8220;Evet&#8221; yan\u0131t\u0131 verilmesini sa\u011flar, b\u00f6ylece i\u015flemin kesintisiz devam etmesini garanti eder. Bu i\u015flem, internet ba\u011flant\u0131n\u0131z\u0131n h\u0131z\u0131na ve sisteminizdeki g\u00fcncelleme bekleyen paketlerin say\u0131s\u0131na ba\u011fl\u0131 olarak biraz zaman alabilir.<\/p>\n<p>Sistem g\u00fcncellemeleri tamamland\u0131ktan sonra, MongoDB&#8217;nin resmi deposunu eklerken ve paketlerini indirirken ihtiya\u00e7 duyaca\u011f\u0131m\u0131z baz\u0131 temel ara\u00e7lar\u0131 kurmam\u0131z gerekecek. \u00d6zellikle, GPG anahtarlar\u0131n\u0131 indirmek i\u00e7in <code>curl<\/code> ve bu anahtarlar\u0131 i\u015flemek i\u00e7in <code>gnupg<\/code> paketleri kritik \u00f6neme sahiptir. Bu ara\u00e7lar, yaz\u0131l\u0131m kaynaklar\u0131n\u0131n g\u00fcvenilirli\u011fini do\u011frulamak i\u00e7in kullan\u0131l\u0131r ve k\u00f6t\u00fc niyetli yaz\u0131l\u0131mlar\u0131n sisteminize s\u0131zmas\u0131n\u0131 engellemeye yard\u0131mc\u0131 olur.<\/p>\n<div class=\"code-block\">\n<pre>\nsudo apt install curl gnupg -y\n<\/pre>\n<\/div>\n<p><code>curl<\/code>, komut sat\u0131r\u0131ndan URL&#8217;ler arac\u0131l\u0131\u011f\u0131yla veri transferi yapman\u0131z\u0131 sa\u011flayan g\u00fc\u00e7l\u00fc bir ara\u00e7t\u0131r. MongoDB&#8217;nin GPG anahtar\u0131n\u0131 indirmek i\u00e7in bu arac\u0131 kullanaca\u011f\u0131z. <code>gnupg<\/code> ise GNU Privacy Guard&#8217;\u0131n k\u0131saltmas\u0131d\u0131r ve \u015fifreleme ile dijital imza i\u015flemleri i\u00e7in kullan\u0131lan bir yaz\u0131l\u0131md\u0131r. MongoDB paketlerinin orijinalli\u011fini do\u011frulamak i\u00e7in bu paketin i\u015flevselli\u011fine ihtiyac\u0131m\u0131z olacak. Bu iki paket, Ubuntu&#8217;da bir\u00e7ok yaz\u0131l\u0131m kurulumunda standart olarak kullan\u0131lan ve g\u00fcvenli\u011fi art\u0131ran temel bile\u015fenlerdir.<\/p>\n<div class=\"expert-tip\">\n    <strong>Uzman \u0130pucu:<\/strong> Sistem g\u00fcncellemelerini d\u00fczenli olarak yapmak, sadece yeni yaz\u0131l\u0131m kurulumlar\u0131 \u00f6ncesinde de\u011fil, genel sistem g\u00fcvenli\u011fi ve performans\u0131 i\u00e7in de kritik \u00f6neme sahiptir. G\u00fcvenlik yamalar\u0131n\u0131 ve hata d\u00fczeltmelerini ka\u00e7\u0131rmamak ad\u0131na bu ad\u0131m\u0131 asla atlamay\u0131n. Ayr\u0131ca, sunucu ortamlar\u0131nda, kritik g\u00fcncellemeler sonras\u0131 sistemi yeniden ba\u015flatmak (<code>sudo reboot<\/code>) bazen gerekli olabilir.\n<\/div>\n<p>Bu haz\u0131rl\u0131k ad\u0131mlar\u0131n\u0131 tamamlad\u0131\u011f\u0131n\u0131zda, Ubuntu sisteminiz MongoDB kurulumu i\u00e7in tamamen haz\u0131r hale gelmi\u015f olacakt\u0131r. Art\u0131k MongoDB&#8217;nin resmi depolar\u0131n\u0131 sisteminize ekleme ve GPG anahtar\u0131n\u0131 do\u011frulama ad\u0131mlar\u0131na ge\u00e7ebiliriz. Bu, veri taban\u0131n\u0131z\u0131n g\u00fcvenli ve do\u011fru bir \u015fekilde kurulmas\u0131n\u0131n temelini olu\u015fturacakt\u0131r.<\/p>\n<h2>MongoDB Repository ve GPG Anahtar\u0131n\u0131 Sisteminize Nas\u0131l Eklenir?<\/h2>\n<p>Sistem haz\u0131rl\u0131klar\u0131n\u0131 tamamlad\u0131\u011f\u0131m\u0131za g\u00f6re, \u015fimdi MongoDB&#8217;nin resmi paket deposunu Ubuntu sistemimize eklememiz gerekiyor. Bu ad\u0131m, MongoDB paketlerini do\u011frudan geli\u015ftiricilerinden almam\u0131z\u0131 sa\u011flayarak hem g\u00fcncel s\u00fcr\u00fcmlere eri\u015fimi garanti eder hem de yaz\u0131l\u0131m\u0131n g\u00fcvenilirli\u011fini temin eder. Paket deposunu eklemeden \u00f6nce, indirilecek paketlerin ger\u00e7ekten MongoDB taraf\u0131ndan yay\u0131nland\u0131\u011f\u0131n\u0131 do\u011frulamak i\u00e7in bir GPG (GNU Privacy Guard) anahtar\u0131 eklemeliyiz. Bu anahtar, indirilen paketlerin b\u00fct\u00fcnl\u00fc\u011f\u00fcn\u00fc ve orijinalli\u011fini kontrol etmek i\u00e7in bir dijital imza g\u00f6revi g\u00f6r\u00fcr ve potansiyel g\u00fcvenlik risklerini \u00f6nler.<\/p>\n<h3>MongoDB GPG Anahtar\u0131n\u0131 \u0130\u00e7e Aktarma<\/h3>\n<p>\u0130lk olarak, MongoDB&#8217;nin genel GPG anahtar\u0131n\u0131 sisteminize indirmeli ve APT&#8217;nin anahtarl\u0131k dizinine eklemelisiniz. Bu anahtar, MongoDB&#8217;nin paketlerini imzalamak i\u00e7in kulland\u0131\u011f\u0131 \u00f6zel bir \u015fifreleme anahtar\u0131d\u0131r. A\u015fa\u011f\u0131daki komut, anahtar\u0131 indirir, \u015fifresini \u00e7\u00f6zer (dearmor) ve g\u00fcvenli bir \u015fekilde <code>\/etc\/apt\/keyrings\/<\/code> dizinine kaydeder. Bu dizin, Ubuntu 22.04 ve \u00fczeri s\u00fcr\u00fcmlerde anahtarlar\u0131n depolanmas\u0131 i\u00e7in \u00f6nerilen yeni ve daha g\u00fcvenli bir konumdur.<\/p>\n<div class=\"code-block\">\n<pre>\ncurl -fsSL https:\/\/www.mongodb.org\/static\/pgp\/server-6.0.asc | sudo gpg --dearmor -o \/etc\/apt\/keyrings\/mongodb-archive-keyring.gpg\n<\/pre>\n<\/div>\n<p>Bu komutun detaylar\u0131na bakacak olursak:<\/p>\n<ul>\n<li><code>curl -fsSL https:\/\/www.mongodb.org\/static\/pgp\/server-6.0.asc<\/code>: MongoDB&#8217;nin resmi web sitesinden 6.0 s\u00fcr\u00fcm\u00fcne ait GPG anahtar\u0131n\u0131 indirir. <code>-f<\/code> hata durumunda sessiz kalmay\u0131, <code>-s<\/code> ilerleme \u00e7ubu\u011funu gizlemeyi ve <code>-L<\/code> y\u00f6nlendirmeleri takip etmeyi sa\u011flar.<\/li>\n<li><code>|<\/code>: Pipe operat\u00f6r\u00fc, <code>curl<\/code> \u00e7\u0131kt\u0131s\u0131n\u0131 bir sonraki komuta girdi olarak y\u00f6nlendirir.<\/li>\n<li><code>sudo gpg --dearmor -o \/etc\/apt\/keyrings\/mongodb-archive-keyring.gpg<\/code>: \u0130ndirilen anahtar\u0131 (ASCII z\u0131rhl\u0131 formatta) ikili bir formata d\u00f6n\u00fc\u015ft\u00fcr\u00fcr (dearmor) ve belirtilen yola kaydeder. <code>sudo<\/code>, bu i\u015flemi ger\u00e7ekle\u015ftirmek i\u00e7in y\u00f6netici yetkilerine ihtiya\u00e7 duyuldu\u011funu g\u00f6sterir.<\/li>\n<\/ul>\n<div class=\"expert-tip\">\n    <strong>Uzman \u0130pucu:<\/strong> GPG anahtarlar\u0131n\u0131 i\u00e7e aktar\u0131rken daima resmi kaynaklar\u0131 kullanmaya \u00f6zen g\u00f6sterin. Yanl\u0131\u015f veya sahte bir anahtar, sisteminize k\u00f6t\u00fc ama\u00e7l\u0131 yaz\u0131l\u0131m y\u00fcklenmesine yol a\u00e7abilir. Komutlardaki URL&#8217;nin resmi MongoDB alan ad\u0131na ait oldu\u011fundan emin olun.\n<\/div>\n<h3>MongoDB Depo Kayna\u011f\u0131n\u0131 Ekleme<\/h3>\n<p>GPG anahtar\u0131 sisteme eklendikten sonra, APT&#8217;ye MongoDB paketlerini nereden bulaca\u011f\u0131n\u0131 s\u00f6yleyen depo kayna\u011f\u0131n\u0131 eklemeliyiz. Bu, sisteminizin MongoDB paketlerini internetten \u00e7ekebilece\u011fi adresi tan\u0131mlar. A\u015fa\u011f\u0131daki komut, yeni bir dosya olu\u015fturarak bu depo bilgisini <code>\/etc\/apt\/sources.list.d\/<\/code> dizinine kaydeder. Bu dizin, sisteminize eklenen \u00fc\u00e7\u00fcnc\u00fc taraf depolar i\u00e7in standart bir konumdur.<\/p>\n<div class=\"code-block\">\n<pre>\necho \"deb [ arch=amd64,arm64 signed-by=\/etc\/apt\/keyrings\/mongodb-archive-keyring.gpg ] https:\/\/repo.mongodb.org\/apt\/ubuntu $(lsb_release -cs)\/mongodb-org\/6.0 multiverse\" | sudo tee \/etc\/apt\/sources.list.d\/mongodb-org-6.0.list\n<\/pre>\n<\/div>\n<p>Bu komutun bile\u015fenlerini inceleyelim:<\/p>\n<ul>\n<li><code>echo \"...\"<\/code>: T\u0131rnak i\u00e7indeki metni standart \u00e7\u0131kt\u0131ya yazar.<\/li>\n<li><code>deb [ arch=amd64,arm64 signed-by=\/etc\/apt\/keyrings\/mongodb-archive-keyring.gpg ]<\/code>: Bu k\u0131s\u0131m, APT&#8217;ye deponun t\u00fcr\u00fcn\u00fc (<code>deb<\/code>), destekledi\u011fi mimarileri (<code>amd64<\/code> ve <code>arm64<\/code>) ve paketlerin hangi GPG anahtar\u0131 ile imzaland\u0131\u011f\u0131n\u0131 (<code>signed-by<\/code>) belirtir.<\/li>\n<li><code>https:\/\/repo.mongodb.org\/apt\/ubuntu<\/code>: MongoDB&#8217;nin resmi depo URL&#8217;sidir.<\/li>\n<li><code>$(lsb_release -cs)<\/code>: Bu komut, Ubuntu s\u00fcr\u00fcm\u00fcn\u00fcz\u00fcn kod ad\u0131n\u0131 (\u00f6rne\u011fin, &#8220;jammy&#8221; for Ubuntu 22.04 LTS) dinamik olarak al\u0131r. Bu, komutun farkl\u0131 Ubuntu s\u00fcr\u00fcmlerinde de \u00e7al\u0131\u015fmas\u0131n\u0131 sa\u011flar.<\/li>\n<li><code>\/mongodb-org\/6.0 multiverse<\/code>: Deponun belirli MongoDB s\u00fcr\u00fcm\u00fcn\u00fc (6.0) ve kategori (<code>multiverse<\/code>) bilgisini belirtir.<\/li>\n<li><code>| sudo tee \/etc\/apt\/sources.list.d\/mongodb-org-6.0.list<\/code>: <code>echo<\/code> komutunun \u00e7\u0131kt\u0131s\u0131n\u0131 <code>tee<\/code> komutuna y\u00f6nlendirir. <code>tee<\/code>, hem \u00e7\u0131kt\u0131y\u0131 ekrana yazar hem de belirtilen dosyaya (<code>mongodb-org-6.0.list<\/code>) kaydeder. <code>sudo<\/code>, bu i\u015flemi y\u00f6netici yetkileriyle yapmay\u0131 sa\u011flar.<\/li>\n<\/ul>\n<p>Bu ad\u0131mlar\u0131 tamamlad\u0131\u011f\u0131n\u0131zda, Ubuntu sisteminiz MongoDB paketlerini resmi depodan g\u00fcvenli bir \u015fekilde indirebilecek konuma gelmi\u015f olacakt\u0131r. Art\u0131k son bir paket g\u00fcncellemesi yaparak, yeni eklenen depoyu APT&#8217;nin tan\u0131mas\u0131n\u0131 sa\u011flayabilir ve ard\u0131ndan MongoDB kurulumuna ge\u00e7ebiliriz. Bu, sisteminizin yaz\u0131l\u0131m kaynaklar\u0131n\u0131 g\u00fcncel tutmak ve yeni eklenen depolar\u0131 tan\u0131mak i\u00e7in standart bir uygulamad\u0131r.<\/p>\n<div class=\"code-block\">\n<pre>\nsudo apt update\n<\/pre>\n<\/div>\n<p>Bu komut, yeni eklenen MongoDB deposunu APT&#8217;nin paket listesine dahil eder. Art\u0131k MongoDB paketleri, di\u011fer Ubuntu paketleri gibi <code>apt<\/code> komutuyla y\u00f6netilebilir hale gelmi\u015ftir. Bir sonraki ad\u0131mda, MongoDB&#8217;yi sisteminize kurmaya ba\u015flayaca\u011f\u0131z.<\/p>\n<h2>Ubuntu&#8217;da MongoDB Kurulumunu Ad\u0131m Ad\u0131m Tamamlama<\/h2>\n<p>\u00d6nceki ad\u0131mlarda Ubuntu sistemimizi haz\u0131rlad\u0131k ve MongoDB&#8217;nin resmi deposunu g\u00fcvenli bir \u015fekilde ekledik. \u015eimdi ise, bu g\u00fc\u00e7l\u00fc NoSQL veri taban\u0131n\u0131 sistemimize kurman\u0131n zaman\u0131 geldi. Bu a\u015fama, MongoDB&#8217;nin temel bile\u015fenlerini indirip kurmay\u0131 ve ard\u0131ndan veri taban\u0131 servisinin sorunsuz bir \u015fekilde ba\u015flat\u0131ld\u0131\u011f\u0131ndan emin olmay\u0131 i\u00e7erir. Kurulum s\u00fcreci, APT paket y\u00f6neticisi sayesinde olduk\u00e7a basittir ve birka\u00e7 komutla tamamlanabilir.<\/p>\n<h3>MongoDB Paketlerini Kurma<\/h3>\n<p>MongoDB&#8217;nin t\u00fcm temel bile\u015fenlerini i\u00e7eren <code>mongodb-org<\/code> meta paketini kurmak i\u00e7in a\u015fa\u011f\u0131daki komutu kullanaca\u011f\u0131z. Bu meta paket, <code>mongod<\/code> (veri taban\u0131 sunucusu), <code>mongosh<\/code> (kabuk), <code>mongodump<\/code>\/<code>mongorestore<\/code> (yedekleme\/geri y\u00fckleme ara\u00e7lar\u0131) ve di\u011fer yard\u0131mc\u0131 programlar\u0131 tek bir i\u015flemde kurar.<\/p>\n<div class=\"code-block\">\n<pre>\nsudo apt install -y mongodb-org\n<\/pre>\n<\/div>\n<p>Bu komut, MongoDB&#8217;nin en son kararl\u0131 s\u00fcr\u00fcm\u00fcn\u00fc (\u00f6nceki ad\u0131mda ekledi\u011fimiz 6.0 deposundan) sisteminize kuracakt\u0131r. Kurulum s\u00fcresi, internet ba\u011flant\u0131n\u0131z\u0131n h\u0131z\u0131na ve sunucunuzun performans\u0131na ba\u011fl\u0131 olarak de\u011fi\u015febilir. Kurulum tamamland\u0131\u011f\u0131nda, MongoDB \u00e7ekirdek servisleri ve ara\u00e7lar\u0131 sisteminizde yerini alm\u0131\u015f olacakt\u0131r.<\/p>\n<h3>MongoDB Servisini Ba\u015flatma ve Etkinle\u015ftirme<\/h3>\n<p>Kurulum tamamland\u0131ktan sonra, MongoDB veri taban\u0131 servisini (<code>mongod<\/code>) ba\u015flatmam\u0131z ve sistem a\u00e7\u0131l\u0131\u015f\u0131nda otomatik olarak ba\u015flamas\u0131n\u0131 sa\u011flamam\u0131z gerekir. Bu i\u015flemleri <code>systemctl<\/code> komutu ile kolayca yapabiliriz.<\/p>\n<p>\u0130lk olarak, MongoDB servisini ba\u015flatal\u0131m:<\/p>\n<div class=\"code-block\">\n<pre>\nsudo systemctl start mongod\n<\/pre>\n<\/div>\n<p>Bu komut, <code>mongod<\/code> arka plan servisini ba\u015flat\u0131r. Servisin do\u011fru bir \u015fekilde \u00e7al\u0131\u015ft\u0131\u011f\u0131ndan emin olmak i\u00e7in durumunu kontrol edebiliriz:<\/p>\n<div class=\"code-block\">\n<pre>\nsudo systemctl status mongod\n<\/pre>\n<\/div>\n<p>Bu komutun \u00e7\u0131kt\u0131s\u0131nda, servisin <code>active (running)<\/code> durumunda oldu\u011funu g\u00f6rmelisiniz. E\u011fer bir hata mesaj\u0131 veya <code>inactive<\/code> durumu g\u00f6r\u00fcyorsan\u0131z, \u00f6nceki ad\u0131mlar\u0131 dikkatlice kontrol etmeniz gerekebilir. Genellikle bir hata durumunda, log dosyalar\u0131n\u0131 (varsay\u0131lan olarak <code>\/var\/log\/mongodb\/mongod.log<\/code>) kontrol etmek sorunun kayna\u011f\u0131n\u0131 anlaman\u0131za yard\u0131mc\u0131 olur.<\/p>\n<p>\u015eimdi, sistem her yeniden ba\u015flat\u0131ld\u0131\u011f\u0131nda MongoDB servisinin otomatik olarak ba\u015flamas\u0131n\u0131 sa\u011flayal\u0131m. Bu, sunucu yeniden ba\u015flatmalar\u0131 sonras\u0131nda veri taban\u0131n\u0131z\u0131n manuel m\u00fcdahaleye gerek kalmadan \u00e7al\u0131\u015f\u0131r duruma gelmesi i\u00e7in \u00f6nemlidir.<\/p>\n<div class=\"code-block\">\n<pre>\nsudo systemctl enable mongod\n<\/pre>\n<\/div>\n<p>Bu komut, <code>mongod<\/code> servisi i\u00e7in bir sembolik ba\u011flant\u0131 olu\u015fturur ve sistemin ba\u015flang\u0131\u00e7 dizinine ekler, b\u00f6ylece sistemin her a\u00e7\u0131l\u0131\u015f\u0131nda servis otomatik olarak ba\u015flat\u0131l\u0131r. Art\u0131k MongoDB veri taban\u0131 sunucunuz \u00e7al\u0131\u015f\u0131r durumda ve kullan\u0131ma haz\u0131r.<\/p>\n<h3>G\u00fcvenlik Duvar\u0131 Yap\u0131land\u0131rmas\u0131 (UFW)<\/h3>\n<p>Sunucu g\u00fcvenli\u011fi, herhangi bir veri taban\u0131 kurulumunda g\u00f6z ard\u0131 edilmemesi gereken kritik bir konudur. Ubuntu&#8217;da varsay\u0131lan olarak gelen UFW (Uncomplicated Firewall) g\u00fcvenlik duvar\u0131n\u0131 kullanarak, MongoDB&#8217;ye sadece belirli IP adreslerinden veya uygulama sunucular\u0131n\u0131zdan eri\u015fim izni vermek en iyi uygulamad\u0131r. MongoDB&#8217;nin varsay\u0131lan portu <code>27017<\/code>&#8216;dir.<\/p>\n<p>E\u011fer UFW aktif de\u011filse, \u00f6nce etkinle\u015ftirmelisiniz:<\/p>\n<div class=\"code-block\">\n<pre>\nsudo ufw enable\n<\/pre>\n<\/div>\n<p>Daha sonra, MongoDB&#8217;nin varsay\u0131lan portu olan <code>27017<\/code>&#8216;ye TCP ba\u011flant\u0131lar\u0131na izin verin. E\u011fer MongoDB&#8217;ye sadece yerel makineden (sunucunun kendisi) eri\u015fecekseniz, bu ad\u0131m\u0131 atlayabilir veya sadece <code>127.0.0.1<\/code> IP adresinden eri\u015fime izin verebilirsiniz. Ancak d\u0131\u015far\u0131dan eri\u015fim gerekiyorsa (\u00f6rne\u011fin bir uygulama sunucusu), bu portu a\u00e7man\u0131z gerekir.<\/p>\n<div class=\"code-block\">\n<pre>\nsudo ufw allow 27017\/tcp\n<\/pre>\n<\/div>\n<p>E\u011fer sadece belirli bir IP adresinden eri\u015fime izin vermek isterseniz, komutu \u015fu \u015fekilde de\u011fi\u015ftirebilirsiniz:<\/p>\n<div class=\"code-block\">\n<pre>\nsudo ufw allow from &lt;uygulama_sunucusu_IP_adresi&gt; to any port 27017\n<\/pre>\n<\/div>\n<p>G\u00fcvenlik duvar\u0131 kurallar\u0131n\u0131z\u0131 kontrol etmek i\u00e7in:<\/p>\n<div class=\"code-block\">\n<pre>\nsudo ufw status\n<\/pre>\n<\/div>\n<div class=\"expert-tip\">\n    <strong>Uzman \u0130pucu:<\/strong> \u00dcretim ortamlar\u0131nda, MongoDB&#8217;ye d\u0131\u015far\u0131dan do\u011frudan eri\u015fim vermek yerine, bir VPN t\u00fcneli veya SSH t\u00fcneli \u00fczerinden ba\u011flant\u0131 kurmak \u00e7ok daha g\u00fcvenlidir. Ayr\u0131ca, MongoDB yap\u0131land\u0131rma dosyas\u0131nda (<code>\/etc\/mongod.conf<\/code>) <code>bindIp<\/code> ayar\u0131n\u0131 kullanarak veri taban\u0131n\u0131n sadece belirli IP adreslerinden gelen ba\u011flant\u0131lar\u0131 kabul etmesini sa\u011flayabilirsiniz. Bu, g\u00fcvenlik katman\u0131n\u0131 \u00f6nemli \u00f6l\u00e7\u00fcde art\u0131r\u0131r.\n<\/div>\n<p>Bu ad\u0131mlarla birlikte, Ubuntu \u00fczerinde MongoDB kurulumunu ba\u015far\u0131yla tamamlam\u0131\u015f ve temel g\u00fcvenlik ayarlar\u0131n\u0131 yapm\u0131\u015f bulunmaktas\u0131n\u0131z. Art\u0131k MongoDB veri taban\u0131n\u0131z \u00e7al\u0131\u015f\u0131r durumda ve ilk veri taban\u0131 i\u015flemlerinizi ger\u00e7ekle\u015ftirmeye haz\u0131rs\u0131n\u0131z.<\/p>\n<h2>MongoDB Kurulum Sonras\u0131 Temel Yap\u0131land\u0131rma ve \u0130lk Ad\u0131mlar<\/h2>\n<p>MongoDB&#8217;yi Ubuntu sisteminize ba\u015far\u0131yla kurup ba\u015flatt\u0131ktan sonra, s\u0131ra geldi bu g\u00fc\u00e7l\u00fc veri taban\u0131yla etkile\u015fime ge\u00e7meye ve ilk ad\u0131mlar\u0131n\u0131z\u0131 atmaya. Bu b\u00f6l\u00fcm, MongoDB kabu\u011fu (<code>mongosh<\/code>) arac\u0131l\u0131\u011f\u0131yla veri taban\u0131na ba\u011flanmay\u0131, temel veri taban\u0131 ve koleksiyon i\u015flemlerini ger\u00e7ekle\u015ftirmeyi ve kurulumunuzun do\u011fru \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131 do\u011frulamay\u0131 kapsar. Bu ad\u0131mlar, MongoDB d\u00fcnyas\u0131na sa\u011flam bir giri\u015f yapman\u0131z\u0131 sa\u011flayacak ve gelecekteki projeleriniz i\u00e7in temel olu\u015fturacakt\u0131r.<\/p>\n<h3>MongoDB Kabu\u011funa Ba\u011flanma (mongosh)<\/h3>\n<p>MongoDB ile etkile\u015fim kurman\u0131n en yayg\u0131n yollar\u0131ndan biri, interaktif JavaScript kabu\u011fu olan <code>mongosh<\/code>&#8216;u kullanmakt\u0131r. Bu kabuk, veri taban\u0131 sorgular\u0131 \u00e7al\u0131\u015ft\u0131rman\u0131za, veri eklemenize, g\u00fcncellemenize ve silmenize, ayr\u0131ca y\u00f6netimsel g\u00f6revleri yerine getirmenize olanak tan\u0131r. Terminalinizden a\u015fa\u011f\u0131daki komutu \u00e7al\u0131\u015ft\u0131rarak <code>mongosh<\/code>&#8216;a ba\u011flanabilirsiniz:<\/p>\n<div class=\"code-block\">\n<pre>\nmongosh\n<\/pre>\n<\/div>\n<p>E\u011fer her \u015fey yolundaysa, MongoDB kabu\u011fu ba\u015flayacak ve komut istemi <code>><\/code> olarak de\u011fi\u015fecektir. Bu, veri taban\u0131na ba\u015far\u0131yla ba\u011fland\u0131\u011f\u0131n\u0131z anlam\u0131na gelir. Kar\u015f\u0131n\u0131zda veri taban\u0131n\u0131n versiyonu ve ba\u011flant\u0131 bilgileri gibi baz\u0131 ba\u015flang\u0131\u00e7 mesajlar\u0131 g\u00f6rebilirsiniz.<\/p>\n<h3>Mevcut Veri Tabanlar\u0131n\u0131 G\u00f6r\u00fcnt\u00fcleme<\/h3>\n<p>MongoDB kabu\u011funa ba\u011fland\u0131ktan sonra, sistemde mevcut olan veri tabanlar\u0131n\u0131 g\u00f6rmek i\u00e7in a\u015fa\u011f\u0131daki komutu kullanabilirsiniz:<\/p>\n<div class=\"code-block\">\n<pre>\nshow dbs\n<\/pre>\n<\/div>\n<p>Bu komut, varsay\u0131lan olarak gelen <code>admin<\/code>, <code>config<\/code> ve <code>local<\/code> gibi veri tabanlar\u0131n\u0131 listeleyecektir. Bunlar MongoDB&#8217;nin dahili i\u015fleyi\u015fi i\u00e7in kullan\u0131lan sistem veri tabanlar\u0131d\u0131r. Kendi veri tabanlar\u0131n\u0131z hen\u00fcz olu\u015fturulmad\u0131\u011f\u0131 i\u00e7in bu listede g\u00f6r\u00fcnmeyecektir.<\/p>\n<h3>Yeni Bir Veri Taban\u0131 Olu\u015fturma ve Kullanma<\/h3>\n<p>MongoDB&#8217;de bir veri taban\u0131 olu\u015fturmak olduk\u00e7a basittir; asl\u0131nda, onu kullanmaya ba\u015flad\u0131\u011f\u0131n\u0131zda otomatik olarak olu\u015fturulur. Yani, belirli bir veri taban\u0131na ge\u00e7i\u015f yapmak i\u00e7in <code>use<\/code> komutunu kullanman\u0131z yeterlidir. E\u011fer belirtilen veri taban\u0131 mevcut de\u011filse, MongoDB onu sizin i\u00e7in olu\u015fturur.<\/p>\n<div class=\"code-block\">\n<pre>\nuse myappdb\n<\/pre>\n<\/div>\n<p>Bu komutu \u00e7al\u0131\u015ft\u0131rd\u0131\u011f\u0131n\u0131zda, kabuk size <code>switched to db myappdb<\/code> mesaj\u0131n\u0131 g\u00f6sterecektir. Art\u0131k <code>myappdb<\/code> adl\u0131 veri taban\u0131 ba\u011flam\u0131nda \u00e7al\u0131\u015f\u0131yorsunuz. Bu veri taban\u0131, i\u00e7ine ilk veriyi ekledi\u011finizde fiziksel olarak olu\u015fturulacakt\u0131r.<\/p>\n<h3>Koleksiyon Olu\u015fturma ve Belge Ekleme<\/h3>\n<p>MongoDB&#8217;de veriler koleksiyonlarda (SQL&#8217;deki tablolara benzer) ve belgeler (SQL&#8217;deki sat\u0131rlara benzer) halinde depolan\u0131r. Bir koleksiyon olu\u015fturmak ve i\u00e7ine ilk belgenizi (dok\u00fcman\u0131n\u0131z\u0131) eklemek i\u00e7in a\u015fa\u011f\u0131daki komutu kullanabilirsiniz:<\/p>\n<div class=\"code-block\">\n<pre>\ndb.users.insertOne({\n  name: \"Ali Can\",\n  email: \"ali.can@example.com\",\n  age: 30,\n  isActive: true,\n  roles: [\"admin\", \"user\"]\n})\n<\/pre>\n<\/div>\n<p>Bu komut, <code>users<\/code> ad\u0131nda bir koleksiyon olu\u015fturur (e\u011fer mevcut de\u011filse) ve i\u00e7ine tek bir belge ekler. Belge, bir JavaScript nesnesi (JSON format\u0131nda) olarak tan\u0131mlan\u0131r ve \u00e7e\u015fitli veri t\u00fcrlerini (string, number, boolean, array) i\u00e7erebilir. MongoDB&#8217;nin \u015fema esnekli\u011fi sayesinde, bu belgeye diledi\u011finiz kadar alan ekleyebilir veya \u00e7\u0131karabilirsiniz.<\/p>\n<p>Belgenin ba\u015far\u0131yla eklendi\u011fini do\u011frulamak i\u00e7in, <code>acknowledged: true<\/code> ve eklenen belgenin <code>_id<\/code> de\u011feri gibi bir \u00e7\u0131kt\u0131 g\u00f6rmelisiniz.<\/p>\n<h3>Koleksiyondaki Belgeleri Sorgulama<\/h3>\n<p>Ekledi\u011finiz belgeyi g\u00f6r\u00fcnt\u00fclemek i\u00e7in <code>find()<\/code> metodunu kullanabilirsiniz:<\/p>\n<div class=\"code-block\">\n<pre>\ndb.users.find()\n<\/pre>\n<\/div>\n<p>Bu komut, <code>users<\/code> koleksiyonundaki t\u00fcm belgeleri listeleyecektir. E\u011fer sadece belirli kriterlere uyan belgeleri aramak isterseniz, <code>find()<\/code> metoduna bir sorgu belgesi ge\u00e7irebilirsiniz:<\/p>\n<div class=\"code-block\">\n<pre>\ndb.users.find({ age: { $gte: 25 } }) \/\/ Ya\u015f\u0131 25 ve \u00fczeri olan kullan\u0131c\u0131lar\u0131 bul\n<\/pre>\n<\/div>\n<p>Bu temel i\u015flemler, MongoDB ile \u00e7al\u0131\u015fmaya ba\u015flamak i\u00e7in sa\u011flam bir temel olu\u015fturur. Art\u0131k kendi veri tabanlar\u0131n\u0131z\u0131 olu\u015fturabilir, koleksiyonlar tan\u0131mlayabilir ve i\u00e7ine veri ekleyip sorgulayabilirsiniz. Bu esneklik, modern uygulama geli\u015ftirme ihtiya\u00e7lar\u0131 i\u00e7in MongoDB&#8217;yi vazge\u00e7ilmez k\u0131lar.<\/p>\n<div class=\"expert-tip\">\n    <strong>Uzman \u0130pucu:<\/strong> MongoDB&#8217;de veri modellemesi yaparken, uygulaman\u0131z\u0131n sorgu desenlerini g\u00f6z \u00f6n\u00fcnde bulundurmak \u00f6nemlidir. Genellikle, ili\u015fkili verileri tek bir belgede birle\u015ftirmek (embedding) performans\u0131 art\u0131rabilir, ancak \u00e7ok b\u00fcy\u00fck belgelerden ka\u00e7\u0131nmak gerekir. Belirli durumlarda, referanslama (referencing) da uygun bir se\u00e7enek olabilir.\n<\/div>\n<p>Bu ba\u015flang\u0131\u00e7 ad\u0131mlar\u0131, MongoDB&#8217;nin g\u00fcc\u00fcn\u00fc ve esnekli\u011fini anlaman\u0131za yard\u0131mc\u0131 olacakt\u0131r. Kurulumunuzun do\u011fru \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131 ve temel veri taban\u0131 i\u015flemlerini ger\u00e7ekle\u015ftirebildi\u011finizi do\u011frulad\u0131\u011f\u0131n\u0131zda, daha karma\u015f\u0131k veri modelleri ve uygulama entegrasyonlar\u0131na ge\u00e7meye haz\u0131r olacaks\u0131n\u0131z.<\/p>\n<h2>Ger\u00e7ek D\u00fcnya Senaryosu: E-ticaret Platformunda MongoDB Kullan\u0131m\u0131<\/h2>\n<p>MongoDB&#8217;nin teorik faydalar\u0131n\u0131 ve kurulumunu ele ald\u0131k. \u015eimdi, bu bilgileri ger\u00e7ek bir d\u00fcnya senaryosu \u00fczerinden peki\u015ftirelim: Dinamik ve h\u0131zla b\u00fcy\u00fcyen bir e-ticaret platformu. Bu vaka analizi, MongoDB&#8217;nin esnekli\u011finin, \u00f6l\u00e7eklenebilirli\u011finin ve performans\u0131n\u0131n modern bir e-ticaret uygulamas\u0131n\u0131n karma\u015f\u0131k veri ihtiya\u00e7lar\u0131n\u0131 nas\u0131l kar\u015f\u0131lad\u0131\u011f\u0131n\u0131 g\u00f6zler \u00f6n\u00fcne serecektir.<\/p>\n<h3>Vaka: &#8220;TrendPazar&#8221; E-ticaret Platformu<\/h3>\n<p>TrendPazar, giyimden elektroni\u011fe, ev e\u015fyalar\u0131ndan ki\u015fisel bak\u0131m \u00fcr\u00fcnlerine kadar geni\u015f bir yelpazede \u00fcr\u00fcn sunan, h\u0131zla b\u00fcy\u00fcyen bir \u00e7evrimi\u00e7i e-ticaret platformudur. Platformun kar\u015f\u0131la\u015ft\u0131\u011f\u0131 temel zorluklar \u015funlard\u0131r:<\/p>\n<ol>\n<li><strong>Dinamik \u00dcr\u00fcn Kataloglar\u0131:<\/strong> Farkl\u0131 \u00fcr\u00fcn kategorileri (\u00f6rne\u011fin, bir ti\u015f\u00f6rt ile bir ak\u0131ll\u0131 telefon) tamamen farkl\u0131 \u00f6zellik setlerine sahiptir. Ti\u015f\u00f6rtlerin beden, renk, kuma\u015f t\u00fcr\u00fc gibi \u00f6zellikleri varken, ak\u0131ll\u0131 telefonlar\u0131n i\u015flemci, RAM, depolama, kamera \u00f6zellikleri gibi detaylar\u0131 bulunur. Geleneksel SQL veri tabanlar\u0131nda bu durumu y\u00f6netmek, \u00e7ok say\u0131da tablo, karma\u015f\u0131k bir \u015fema ve bo\u015f (NULL) alanlarla dolu s\u00fctunlar anlam\u0131na gelebilir.<\/li>\n<li><strong>Kullan\u0131c\u0131 Profilleri ve Davran\u0131\u015flar\u0131:<\/strong> Kullan\u0131c\u0131lar\u0131n al\u0131\u015fveri\u015f ge\u00e7mi\u015fleri, favori \u00fcr\u00fcnleri, g\u00f6r\u00fcnt\u00fcledikleri \u00fcr\u00fcnler, sepet i\u00e7erikleri ve ki\u015fisel bilgileri gibi \u00e7e\u015fitli verilerin depolanmas\u0131 gerekmektedir. Bu veriler zamanla de\u011fi\u015febilir ve yeni davran\u0131\u015fsal \u00f6zellikler eklenebilir.<\/li>\n<li><strong>Y\u00fcksek Trafik ve \u00d6l\u00e7eklenebilirlik:<\/strong> \u00d6zel indirim d\u00f6nemlerinde veya kampanya zamanlar\u0131nda platforma gelen kullan\u0131c\u0131 trafi\u011fi aniden artabilir. Veri taban\u0131n\u0131n bu y\u00fck\u00fc sorunsuz bir \u015fekilde kald\u0131rabilmesi ve yatayda \u00f6l\u00e7eklenebilmesi kritik \u00f6neme sahiptir.<\/li>\n<li><strong>Performans:<\/strong> Kullan\u0131c\u0131lar\u0131n h\u0131zl\u0131 \u00fcr\u00fcn arama, filtreleme ve sayfa y\u00fckleme deneyimi ya\u015famas\u0131, sat\u0131\u015flar\u0131 do\u011frudan etkileyen bir fakt\u00f6rd\u00fcr. Veri taban\u0131n\u0131n h\u0131zl\u0131 yan\u0131t s\u00fcreleri sunmas\u0131 gerekmektedir.<\/li>\n<\/ol>\n<h3>MongoDB ile TrendPazar \u00c7\u00f6z\u00fcm\u00fc<\/h3>\n<p>TrendPazar ekibi, yukar\u0131daki zorluklar\u0131 a\u015fmak i\u00e7in MongoDB&#8217;yi tercih etti. \u0130\u015fte MongoDB&#8217;nin bu platforma sa\u011flad\u0131\u011f\u0131 avantajlar:<\/p>\n<h4>1. Esnek \u00dcr\u00fcn Katalo\u011fu Y\u00f6netimi<\/h4>\n<p>MongoDB&#8217;nin dok\u00fcman tabanl\u0131 yap\u0131s\u0131 ve \u015fema esnekli\u011fi, TrendPazar&#8217;\u0131n dinamik \u00fcr\u00fcn kataloglar\u0131 sorununa m\u00fckemmel bir \u00e7\u00f6z\u00fcm sundu. Her \u00fcr\u00fcn, kendi benzersiz \u00f6zellik setini i\u00e7eren ayr\u0131 bir belge olarak <code>products<\/code> koleksiyonunda depoland\u0131. \u00d6rne\u011fin:<\/p>\n<div class=\"code-block\">\n<pre>\n\/\/ Ti\u015f\u00f6rt Belgesi\n{\n  _id: ObjectId(\"...\"),\n  name: \"Pamuklu V Yaka Ti\u015f\u00f6rt\",\n  category: \"Giyim\",\n  brand: \"FashionCo\",\n  price: 99.90,\n  stock: 150,\n  attributes: {\n    material: \"Pamuk\",\n    neckType: \"V Yaka\",\n    color: [\"Siyah\", \"Beyaz\", \"Gri\"],\n    size: [\"S\", \"M\", \"L\", \"XL\"]\n  },\n  reviews: [\n    { userId: ObjectId(\"...\"), rating: 5, comment: \"\u00c7ok rahat!\" },\n    { userId: ObjectId(\"...\"), rating: 4, comment: \"Bedenler biraz dar.\" }\n  ]\n}\n\n\/\/ Ak\u0131ll\u0131 Telefon Belgesi\n{\n  _id: ObjectId(\"...\"),\n  name: \"MegaPhone X\",\n  category: \"Elektronik\",\n  brand: \"TechGiant\",\n  price: 8999.00,\n  stock: 50,\n  attributes: {\n    processor: \"SnapDragon 8 Gen 2\",\n    ram: \"8GB\",\n    storage: \"128GB\",\n    camera: { front: \"12MP\", rear: \"50MP\" },\n    screen: { type: \"AMOLED\", size: \"6.7 inch\" }\n  },\n  warranty: \"2 Y\u0131l\",\n  features: [\"5G Destekli\", \"Su Ge\u00e7irmez\"]\n}\n<\/pre>\n<\/div>\n<p>Bu yakla\u015f\u0131m, \u00fcr\u00fcn \u00f6zelliklerini tek bir belge i\u00e7inde tutarak sorgu performans\u0131n\u0131 art\u0131rd\u0131 ve yeni \u00fcr\u00fcn t\u00fcrleri eklendi\u011finde veri taban\u0131 \u015femas\u0131n\u0131 de\u011fi\u015ftirmeye gerek kalmad\u0131. Geli\u015ftiriciler, yeni bir \u00fcr\u00fcn kategorisi i\u00e7in sadece yeni alanlar ekleyerek h\u0131zl\u0131ca adapte olabildiler.<\/p>\n<h4>2. Zengin Kullan\u0131c\u0131 Profilleri ve Davran\u0131\u015f Verileri<\/h4>\n<p>Kullan\u0131c\u0131 verileri de <code>users<\/code> koleksiyonunda esnek belgeler olarak depoland\u0131. Bu sayede, her kullan\u0131c\u0131n\u0131n al\u0131\u015fveri\u015f ge\u00e7mi\u015fi, favori \u00fcr\u00fcnleri ve hatta ki\u015fiselle\u015ftirilmi\u015f \u00f6neriler i\u00e7in davran\u0131\u015fsal verileri tek bir belgede saklanabildi. \u00d6rne\u011fin:<\/p>\n<div class=\"code-block\">\n<pre>\n{\n  _id: ObjectId(\"...\"),\n  username: \"ayse.yilmaz\",\n  email: \"ayse.yilmaz@example.com\",\n  address: { street: \"Ana Cad. 10\", city: \"\u0130stanbul\", zip: \"34000\" },\n  orders: [\n    { orderId: ObjectId(\"...\"), date: ISODate(\"2023-01-15\"), total: 150.00 },\n    { orderId: ObjectId(\"...\"), date: ISODate(\"2023-03-22\"), total: 75.50 }\n  ],\n  wishlist: [ObjectId(\"product123\"), ObjectId(\"product456\")],\n  preferences: {\n    categories: [\"Giyim\", \"Kitap\"],\n    brands: [\"FashionCo\"]\n  },\n  lastActivity: ISODate(\"2023-10-26T10:30:00Z\")\n}\n<\/pre>\n<\/div>\n<p>Bu yap\u0131, kullan\u0131c\u0131ya \u00f6zel i\u00e7erik ve \u00f6neriler sunmay\u0131 kolayla\u015ft\u0131rd\u0131, \u00e7\u00fcnk\u00fc t\u00fcm ilgili veriler tek bir sorgu ile getirilebiliyordu. Ayr\u0131ca, yeni bir kullan\u0131c\u0131 \u00f6zelli\u011fi eklendi\u011finde (\u00f6rne\u011fin, &#8220;sadakat puanlar\u0131&#8221;), sadece mevcut belgelere yeni bir alan eklemek yeterli oldu.<\/p>\n<h4>3. Y\u00fcksek Eri\u015filebilirlik ve \u00d6l\u00e7eklenebilirlik<\/h4>\n<p>TrendPazar, y\u00fcksek trafik d\u00f6nemlerinde dahi platformun kesintisiz \u00e7al\u0131\u015fmas\u0131n\u0131 sa\u011flamak i\u00e7in MongoDB&#8217;nin replika setleri \u00f6zelli\u011fini kulland\u0131. Birincil (primary) veri taban\u0131n\u0131n ar\u0131zalanmas\u0131 durumunda, bir ikincil (secondary) veri taban\u0131 otomatik olarak birincil rol\u00fcn\u00fc \u00fcstlenerek veri taban\u0131n\u0131n s\u00fcrekli eri\u015filebilirli\u011fini sa\u011flad\u0131. Ayr\u0131ca, veri miktar\u0131n\u0131n artmas\u0131yla birlikte, sharding (par\u00e7alama) mimarisi uyguland\u0131. Bu sayede, veri taban\u0131 birden fazla sunucuya yatay olarak da\u011f\u0131t\u0131larak sorgu y\u00fck\u00fc payla\u015ft\u0131r\u0131ld\u0131 ve performans art\u0131r\u0131ld\u0131.<\/p>\n<h4>4. Performans Optimizasyonu<\/h4>\n<p>MongoDB&#8217;nin g\u00fc\u00e7l\u00fc indeksleme yetenekleri, TrendPazar&#8217;\u0131n \u00fcr\u00fcn arama ve filtreleme i\u015flemlerini inan\u0131lmaz derecede h\u0131zland\u0131rd\u0131. \u00d6rne\u011fin, \u00fcr\u00fcn ad\u0131, kategori veya fiyat aral\u0131\u011f\u0131na g\u00f6re yap\u0131lan sorgular i\u00e7in uygun indeksler olu\u015fturuldu. Bu, kullan\u0131c\u0131lar\u0131n milisaniyeler i\u00e7inde sonu\u00e7 almas\u0131n\u0131 sa\u011flayarak al\u0131\u015fveri\u015f deneyimini \u00f6nemli \u00f6l\u00e7\u00fcde iyile\u015ftirdi.<\/p>\n<div class=\"code-block\">\n<pre>\n\/\/ \u00dcr\u00fcn ad\u0131na g\u00f6re h\u0131zl\u0131 arama i\u00e7in indeks olu\u015fturma\ndb.products.createIndex({ name: \"text\" })\n\n\/\/ Kategori ve fiyata g\u00f6re filtreleme i\u00e7in birle\u015fik indeks\ndb.products.createIndex({ category: 1, price: 1 })\n<\/pre>\n<\/div>\n<p>Sonu\u00e7 olarak, TrendPazar platformu MongoDB sayesinde esnek, \u00f6l\u00e7eklenebilir ve y\u00fcksek performansl\u0131 bir veri taban\u0131 altyap\u0131s\u0131na sahip oldu. Bu vaka analizi, MongoDB&#8217;nin sadece kurulumunun kolay olmad\u0131\u011f\u0131n\u0131, ayn\u0131 zamanda modern ve dinamik i\u015f ihtiya\u00e7lar\u0131n\u0131 kar\u015f\u0131lamak i\u00e7in ne kadar g\u00fc\u00e7l\u00fc bir ara\u00e7 oldu\u011funu a\u00e7\u0131k\u00e7a g\u00f6stermektedir. Geli\u015ftiriciler, veri modelleme esnekli\u011fi ve g\u00fc\u00e7l\u00fc \u00f6zellik setleri sayesinde i\u015f mant\u0131\u011f\u0131na daha fazla odaklanabilirken, operasyonel ekip de veri taban\u0131n\u0131n y\u00fcksek eri\u015filebilirli\u011fini ve \u00f6l\u00e7eklenebilirli\u011fini g\u00fcvence alt\u0131na alm\u0131\u015ft\u0131r.<\/p>\n<h2>MongoDB G\u00fcvenli\u011fini ve Performans\u0131n\u0131 \u0130leri D\u00fczeyde Optimize Etme<\/h2>\n<p>MongoDB&#8217;yi Ubuntu&#8217;ya kurmak harika bir ba\u015flang\u0131\u00e7t\u0131r, ancak bir \u00fcretim ortam\u0131nda kullanmay\u0131 planl\u0131yorsan\u0131z, g\u00fcvenlik ve performans optimizasyonlar\u0131 kritik \u00f6neme sahiptir. Bu b\u00f6l\u00fcmde, veri taban\u0131n\u0131z\u0131n g\u00fcvenli\u011fini art\u0131rmak i\u00e7in kimlik do\u011frulama ve yetkilendirme ayarlar\u0131n\u0131, performans\u0131 iyile\u015ftirmek i\u00e7in indekslemeyi ve veri yedekleme stratejilerini ele alaca\u011f\u0131z. Bu ileri d\u00fczey ipu\u00e7lar\u0131, veri taban\u0131n\u0131z\u0131n hem g\u00fcvenli hem de verimli \u00e7al\u0131\u015fmas\u0131n\u0131 sa\u011flayacakt\u0131r.<\/p>\n<h3>1. G\u00fcvenli\u011fi Art\u0131rma: Kimlik Do\u011frulama ve Yetkilendirme<\/h3>\n<p>Varsay\u0131lan olarak, MongoDB kimlik do\u011frulamas\u0131 olmadan \u00e7al\u0131\u015f\u0131r, yani herhangi bir kullan\u0131c\u0131 veri taban\u0131na ba\u011flan\u0131p t\u00fcm verilere eri\u015febilir. Bu, geli\u015ftirme ortamlar\u0131 i\u00e7in uygun olsa da, \u00fcretim ortamlar\u0131 i\u00e7in b\u00fcy\u00fck bir g\u00fcvenlik riskidir. Kimlik do\u011frulamay\u0131 etkinle\u015ftirmek ve kullan\u0131c\u0131lar olu\u015fturmak, veri taban\u0131n\u0131za eri\u015fimi k\u0131s\u0131tlaman\u0131n ilk ad\u0131m\u0131d\u0131r.<\/p>\n<h4>a. MongoDB Yap\u0131land\u0131rma Dosyas\u0131n\u0131 D\u00fczenleme<\/h4>\n<p>MongoDB&#8217;nin yap\u0131land\u0131rma dosyas\u0131 <code>\/etc\/mongod.conf<\/code> adresinde bulunur. Bu dosyay\u0131 d\u00fczenleyerek kimlik do\u011frulamay\u0131 etkinle\u015ftirebilirsiniz. Bir metin d\u00fczenleyici ile dosyay\u0131 a\u00e7\u0131n:<\/p>\n<div class=\"code-block\">\n<pre>\nsudo nano \/etc\/mongod.conf\n<\/pre>\n<\/div>\n<p>Dosya i\u00e7inde <code>security<\/code> b\u00f6l\u00fcm\u00fcn\u00fc bulun (veya ekleyin) ve <code>authorization<\/code> ayar\u0131n\u0131 <code>enabled<\/code> olarak de\u011fi\u015ftirin:<\/p>\n<div class=\"code-block\">\n<pre>\n# network interfaces\nnet:\n  port: 27017\n  bindIp: 127.0.0.1  # Sadece yerel eri\u015fime izin verir\n  # bindIp: 0.0.0.0  # T\u00fcm IP'lerden eri\u015fime izin verir (D\u0130KKAT: G\u00fcvenlik riski)\n\nsecurity:\n  authorization: enabled # Bu sat\u0131r\u0131 ekleyin veya etkinle\u015ftirin\n<\/pre>\n<\/div>\n<p>Ayr\u0131ca, <code>bindIp<\/code> ayar\u0131n\u0131 da dikkatlice yap\u0131land\u0131rmal\u0131s\u0131n\u0131z. E\u011fer veri taban\u0131n\u0131za sadece uygulama sunucunuzdan eri\u015filecekse, <code>127.0.0.1<\/code> ve uygulama sunucunuzun IP adresini virg\u00fclle ay\u0131rarak belirtebilirsiniz (\u00f6rne\u011fin: <code>bindIp: 127.0.0.1, 192.168.1.100<\/code>). <code>0.0.0.0<\/code> olarak ayarlamak, t\u00fcm IP adreslerinden ba\u011flant\u0131lara izin verir ve g\u00fcvenlik duvar\u0131 kurallar\u0131n\u0131z yoksa \u00e7ok risklidir.<\/p>\n<p>De\u011fi\u015fiklikleri kaydedip \u00e7\u0131kt\u0131ktan sonra MongoDB servisini yeniden ba\u015flat\u0131n:<\/p>\n<div class=\"code-block\">\n<pre>\nsudo systemctl restart mongod\n<\/pre>\n<\/div>\n<h4>b. Y\u00f6netici Kullan\u0131c\u0131 Olu\u015fturma<\/h4>\n<p>Kimlik do\u011frulama etkinle\u015ftirildi\u011finde, veri taban\u0131na ba\u011flanmak i\u00e7in bir kullan\u0131c\u0131ya ihtiyac\u0131n\u0131z olacakt\u0131r. \u0130lk olarak, y\u00f6netici ayr\u0131cal\u0131klar\u0131na sahip bir kullan\u0131c\u0131 olu\u015ftural\u0131m. Bu kullan\u0131c\u0131, di\u011fer kullan\u0131c\u0131lar\u0131 olu\u015fturma ve y\u00f6netme yetkisine sahip olacakt\u0131r.<\/p>\n<p>Kimlik do\u011frulama etkinle\u015ftirildikten sonra, hen\u00fcz bir kullan\u0131c\u0131 olu\u015fturmad\u0131\u011f\u0131n\u0131z i\u00e7in <code>mongosh<\/code>&#8216;a ba\u011flanmakta sorun ya\u015fayabilirsiniz. Ge\u00e7ici olarak kimlik do\u011frulamay\u0131 devre d\u0131\u015f\u0131 b\u0131rak\u0131p kullan\u0131c\u0131 olu\u015fturabilir veya a\u015fa\u011f\u0131daki gibi ba\u011flanabilirsiniz:<\/p>\n<div class=\"code-block\">\n<pre>\nmongosh --port 27017\n<\/pre>\n<\/div>\n<p>Ard\u0131ndan <code>admin<\/code> veri taban\u0131na ge\u00e7in ve y\u00f6netici kullan\u0131c\u0131y\u0131 olu\u015fturun:<\/p>\n<div class=\"code-block\">\n<pre>\nuse admin\ndb.createUser(\n  {\n    user: \"adminUser\",\n    pwd: passwordPrompt(), \/\/ Parolay\u0131 g\u00fcvenli bir \u015fekilde girmenizi sa\u011flar\n    roles: [ { role: \"userAdminAnyDatabase\", db: \"admin\" }, \"readWriteAnyDatabase\" ]\n  }\n)\n<\/pre>\n<\/div>\n<p><code>passwordPrompt()<\/code> komutu, parolay\u0131 terminalde g\u00f6r\u00fcnmez bir \u015fekilde girmenizi sa\u011flar. Y\u00f6netici kullan\u0131c\u0131n\u0131z\u0131 olu\u015fturduktan sonra, <code>mongosh<\/code>&#8216;tan \u00e7\u0131k\u0131n ve yeni kullan\u0131c\u0131 ile tekrar ba\u011flanmay\u0131 deneyin:<\/p>\n<div class=\"code-block\">\n<pre>\nmongosh --port 27017 -u \"adminUser\" -p\n<\/pre>\n<\/div>\n<p>Bu sefer parola sorulacakt\u0131r. Ba\u015far\u0131l\u0131 bir \u015fekilde ba\u011fland\u0131\u011f\u0131n\u0131zda, di\u011fer veri tabanlar\u0131 i\u00e7in kullan\u0131c\u0131lar olu\u015fturabilirsiniz.<\/p>\n<div class=\"code-block\">\n<pre>\nuse myappdb\ndb.createUser(\n  {\n    user: \"appUser\",\n    pwd: passwordPrompt(),\n    roles: [ { role: \"readWrite\", db: \"myappdb\" } ]\n  }\n)\n<\/pre>\n<\/div>\n<h3>2. Performans \u0130yile\u015ftirme: \u0130ndeksleme<\/h3>\n<p>\u0130ndeksler, MongoDB&#8217;de sorgu performans\u0131n\u0131 dramatik bir \u015fekilde art\u0131rabilir. S\u0131k\u00e7a sorgulanan veya s\u0131ralama yap\u0131lan alanlar i\u00e7in indeksler olu\u015fturmak, veri taban\u0131n\u0131n ilgili verileri daha h\u0131zl\u0131 bulmas\u0131n\u0131 sa\u011flar. \u00d6rne\u011fin, <code>users<\/code> koleksiyonundaki <code>email<\/code> alan\u0131na g\u00f6re s\u0131k\u00e7a arama yap\u0131yorsan\u0131z, bu alan i\u00e7in bir indeks olu\u015fturmal\u0131s\u0131n\u0131z:<\/p>\n<div class=\"code-block\">\n<pre>\nuse myappdb\ndb.users.createIndex({ email: 1 }, { unique: true }) \/\/ 1 artan s\u0131ralama, unique:true e-postalar\u0131n benzersiz olmas\u0131n\u0131 sa\u011flar\n<\/pre>\n<\/div>\n<p>Birden fazla alanda sorgulama yap\u0131yorsan\u0131z, bile\u015fik indeksler (compound indexes) kullanabilirsiniz. \u00d6rne\u011fin, <code>category<\/code> ve <code>price<\/code> alanlar\u0131na g\u00f6re \u00fcr\u00fcnleri filtrelemek i\u00e7in:<\/p>\n<div class=\"code-block\">\n<pre>\ndb.products.createIndex({ category: 1, price: -1 }) \/\/ Kategori artan, fiyat azalan\n<\/pre>\n<\/div>\n<div class=\"expert-tip\">\n    <strong>Uzman \u0130pucu:<\/strong> \u0130ndeksler performans\u0131 art\u0131rsa da, \u00e7ok fazla indeks olu\u015fturmak yazma i\u015flemlerinin performans\u0131n\u0131 d\u00fc\u015f\u00fcrebilir ve disk alan\u0131 t\u00fcketimini art\u0131rabilir. Sadece s\u0131k\u00e7a sorgulanan ve filtrelenen alanlar i\u00e7in indeks olu\u015fturmaya \u00f6zen g\u00f6sterin. <code>explain()<\/code> metodunu kullanarak sorgular\u0131n\u0131z\u0131n indeksleri nas\u0131l kulland\u0131\u011f\u0131n\u0131 analiz edebilirsiniz.\n<\/div>\n<h3>3. Veri Yedekleme ve Geri Y\u00fckleme<\/h3>\n<p>Veri kayb\u0131n\u0131 \u00f6nlemek i\u00e7in d\u00fczenli yedeklemeler almak hayati \u00f6neme sahiptir. MongoDB, veri tabanlar\u0131n\u0131 yedeklemek ve geri y\u00fcklemek i\u00e7in <code>mongodump<\/code> ve <code>mongorestore<\/code> yard\u0131mc\u0131 programlar\u0131n\u0131 sunar.<\/p>\n<h4>a. Yedekleme (mongodump)<\/h4>\n<p>T\u00fcm veri tabanlar\u0131n\u0131 yedeklemek i\u00e7in:<\/p>\n<div class=\"code-block\">\n<pre>\nmongodump --out \/var\/backups\/mongodb_$(date +%F)\n<\/pre>\n<\/div>\n<p>Belirli bir veri taban\u0131n\u0131 yedeklemek i\u00e7in:<\/p>\n<div class=\"code-block\">\n<pre>\nmongodump --db myappdb --out \/var\/backups\/mongodb_myappdb_$(date +%F)\n<\/pre>\n<\/div>\n<p><code>--out<\/code> parametresi, yedekleme dosyalar\u0131n\u0131n kaydedilece\u011fi dizini belirtir. <code>$(date +%F)<\/code>, yedekleme dosyas\u0131na otomatik olarak g\u00fcncel tarihi ekler.<\/p>\n<h4>b. Geri Y\u00fckleme (mongorestore)<\/h4>\n<p>Yedekledi\u011finiz verileri geri y\u00fcklemek i\u00e7in <code>mongorestore<\/code> kullanabilirsiniz:<\/p>\n<div class=\"code-block\">\n<pre>\nmongorestore \/var\/backups\/mongodb_2023-10-26\n<\/pre>\n<\/div>\n<p>Belirli bir veri taban\u0131n\u0131 geri y\u00fcklemek i\u00e7in:<\/p>\n<div class=\"code-block\">\n<pre>\nmongorestore --db myappdb --drop \/var\/backups\/mongodb_myappdb_2023-10-26\/myappdb\n<\/pre>\n<\/div>\n<p><code>--drop<\/code> parametresi, geri y\u00fcklemeden \u00f6nce mevcut veri taban\u0131n\u0131 siler. Bu dikkatli kullan\u0131lmas\u0131 gereken bir parametredir.<\/p>\n<div class=\"expert-tip\">\n    <strong>Uzman \u0130pucu:<\/strong> Yedekleme i\u015flemlerini otomatik hale getirmek i\u00e7in <code>cron<\/code> i\u015fleri kullan\u0131n. Ayr\u0131ca, yedekleri farkl\u0131 bir sunucuya veya bulut depolama alan\u0131na kopyalayarak felaket kurtarma senaryolar\u0131na kar\u015f\u0131 haz\u0131rl\u0131kl\u0131 olun.\n<\/div>\n<p>Bu ileri d\u00fczey g\u00fcvenlik ve performans optimizasyonlar\u0131, MongoDB kurulumunuzun sadece \u00e7al\u0131\u015f\u0131r durumda olmas\u0131n\u0131 de\u011fil, ayn\u0131 zamanda \u00fcretim ortamlar\u0131nda g\u00fcvenli ve verimli bir \u015fekilde hizmet vermesini sa\u011flayacakt\u0131r. Her zaman en iyi g\u00fcvenlik uygulamalar\u0131n\u0131 takip edin ve performans\u0131n\u0131z\u0131 d\u00fczenli olarak izleyerek gerekli ayarlamalar\u0131 yap\u0131n.<\/p>\n<h2>Sonu\u00e7: Ubuntu&#8217;da MongoDB Kurulumu ve Gelecek Ad\u0131mlar<\/h2>\n<p>Bu kapsaml\u0131 rehber boyunca, Ubuntu i\u015fletim sistemi \u00fczerinde MongoDB kurulumunun her ad\u0131m\u0131n\u0131 detayl\u0131 bir \u015fekilde inceledik. Modern web uygulamalar\u0131n\u0131n ve b\u00fcy\u00fck veri projelerinin vazge\u00e7ilmezi olan bu g\u00fc\u00e7l\u00fc NoSQL veri taban\u0131n\u0131 s\u0131f\u0131rdan kurmay\u0131, temel yap\u0131land\u0131rmalar\u0131n\u0131 yapmay\u0131 ve hatta ger\u00e7ek d\u00fcnya senaryolar\u0131 \u00fczerinden kullan\u0131m\u0131n\u0131 anlamay\u0131 ba\u015fard\u0131k. Sisteminizi haz\u0131rlamaktan, GPG anahtar\u0131n\u0131 ve depo kaynaklar\u0131n\u0131 eklemeye, MongoDB paketlerini kurmaktan, servisi ba\u015flatmaya ve temel veri taban\u0131 i\u015flemlerini ger\u00e7ekle\u015ftirmeye kadar her a\u015famay\u0131 ad\u0131m ad\u0131m ele ald\u0131k. Ayr\u0131ca, bir e-ticaret platformu \u00f6rne\u011fiyle MongoDB&#8217;nin esnek \u015fema yap\u0131s\u0131n\u0131n ve \u00f6l\u00e7eklenebilirlik yeteneklerinin i\u015f d\u00fcnyas\u0131ndaki pratik faydalar\u0131n\u0131 somutla\u015ft\u0131rd\u0131k.<\/p>\n<p>Kurulum sonras\u0131 g\u00fcvenlik \u00f6nlemlerini, kimlik do\u011frulama ve yetkilendirme ayarlar\u0131n\u0131, performans\u0131 art\u0131rmak i\u00e7in indeksleme stratejilerini ve veri kayb\u0131n\u0131 \u00f6nlemek i\u00e7in yedekleme mekanizmalar\u0131n\u0131 da ayr\u0131nt\u0131l\u0131 olarak ele ald\u0131k. Bu ileri d\u00fczey optimizasyonlar, veri taban\u0131n\u0131z\u0131n sadece \u00e7al\u0131\u015f\u0131r durumda olmas\u0131n\u0131 de\u011fil, ayn\u0131 zamanda \u00fcretim ortamlar\u0131nda g\u00fcvenli, kararl\u0131 ve y\u00fcksek performansl\u0131 bir \u015fekilde hizmet vermesini sa\u011flamak i\u00e7in elzemdir. MongoDB&#8217;nin sundu\u011fu esneklik ve \u00f6l\u00e7eklenebilirlik, geli\u015ftiricilere ve i\u015fletmelere h\u0131zla de\u011fi\u015fen pazar ko\u015fullar\u0131na adapte olma ve inovasyonu h\u0131zland\u0131rma imkan\u0131 tan\u0131r.<\/p>\n<p>Art\u0131k Ubuntu sunucunuzda \u00e7al\u0131\u015fan g\u00fcvenli ve optimize edilmi\u015f bir MongoDB kurulumuna sahipsiniz. Bu, veri taban\u0131 tabanl\u0131 projeleriniz i\u00e7in sa\u011flam bir temel olu\u015fturuyor. Gelecek ad\u0131mlar\u0131n\u0131z, MongoDB&#8217;nin zengin sorgulama dilini (MongoDB Query Language &#8211; MQL) daha derinlemesine \u00f6\u011frenmek, replika setleri ve sharding gibi y\u00fcksek eri\u015filebilirlik ve \u00f6l\u00e7eklenebilirlik \u00f6zelliklerini ke\u015ffetmek, ayr\u0131ca uygulaman\u0131z\u0131 veri taban\u0131n\u0131za entegre etmek i\u00e7in tercih etti\u011finiz programlama dilinin (Node.js, Python, Java vb.) MongoDB s\u00fcr\u00fcc\u00fclerini kullanmak olabilir. Unutmay\u0131n, veri taban\u0131 y\u00f6netimi s\u00fcrekli bir \u00f6\u011frenme ve optimizasyon s\u00fcrecidir. D\u00fczenli bak\u0131m, izleme ve g\u00fcvenlik g\u00fcncellemeleri, veri taban\u0131n\u0131z\u0131n uzun \u00f6m\u00fcrl\u00fc ve verimli olmas\u0131n\u0131 sa\u011flayacakt\u0131r. Bu rehberin, MongoDB yolculu\u011funuzda size rehberlik etmesini umuyoruz.<\/p>\n<h2>S\u0131k\u00e7a Sorulan Sorular (SSS)<\/h2>\n<h3>1. MongoDB&#8217;yi Ubuntu&#8217;dan tamamen kald\u0131rmak i\u00e7in ne yapmal\u0131y\u0131m?<\/h3>\n<p>MongoDB&#8217;yi tamamen kald\u0131rmak i\u00e7in a\u015fa\u011f\u0131daki ad\u0131mlar\u0131 izleyebilirsiniz:<\/p>\n<ol>\n<li>MongoDB servisini durdurun: <code>sudo systemctl stop mongod<\/code><\/li>\n<li>Servisin sistem ba\u015flang\u0131c\u0131nda otomatik ba\u015flamas\u0131n\u0131 devre d\u0131\u015f\u0131 b\u0131rak\u0131n: <code>sudo systemctl disable mongod<\/code><\/li>\n<li>MongoDB paketlerini kald\u0131r\u0131n: <code>sudo apt purge mongodb-org* -y<\/code><\/li>\n<li>Kalan veri dizinlerini ve log dosyalar\u0131n\u0131 silin (bu i\u015flem verilerinizi kal\u0131c\u0131 olarak silecektir, dikkatli olun): <code>sudo rm -r \/var\/log\/mongodb<\/code> ve <code>sudo rm -r \/var\/lib\/mongodb<\/code><\/li>\n<li>MongoDB depo dosyas\u0131n\u0131 kald\u0131r\u0131n: <code>sudo rm \/etc\/apt\/sources.list.d\/mongodb-org-6.0.list<\/code><\/li>\n<li>Sistem paket listesini g\u00fcncelleyin: <code>sudo apt update<\/code><\/li>\n<\/ol>\n<h3>2. Farkl\u0131 bir MongoDB s\u00fcr\u00fcm\u00fcn\u00fc nas\u0131l kurabilirim?<\/h3>\n<p>Farkl\u0131 bir s\u00fcr\u00fcm kurmak i\u00e7in, depo kayna\u011f\u0131n\u0131 eklerken kulland\u0131\u011f\u0131n\u0131z komutta s\u00fcr\u00fcm numaras\u0131n\u0131 (\u00f6rne\u011fin <code>6.0<\/code> yerine <code>5.0<\/code> veya <code>4.4<\/code>) de\u011fi\u015ftirmeniz gerekir. \u00d6rne\u011fin, 5.0 s\u00fcr\u00fcm\u00fc i\u00e7in depo ekleme komutu \u015f\u00f6yle olurdu:<\/p>\n<div class=\"code-block\">\n<pre>\necho \"deb [ arch=amd64,arm64 signed-by=\/etc\/apt\/keyrings\/mongodb-archive-keyring.gpg ] https:\/\/repo.mongodb.org\/apt\/ubuntu $(lsb_release -cs)\/mongodb-org\/5.0 multiverse\" | sudo tee \/etc\/apt\/sources.list.d\/mongodb-org-5.0.list\n<\/pre>\n<\/div>\n<p>Daha sonra <code>sudo apt update<\/code> ve <code>sudo apt install -y mongodb-org<\/code> komutlar\u0131n\u0131 \u00e7al\u0131\u015ft\u0131rarak yeni s\u00fcr\u00fcm\u00fc kurabilirsiniz. Mevcut bir s\u00fcr\u00fcm\u00fcn \u00fczerine farkl\u0131 bir s\u00fcr\u00fcm kurmadan \u00f6nce mevcut kurulumu kald\u0131rman\u0131z veya dikkatli bir y\u00fckseltme (upgrade) prosed\u00fcr\u00fc uygulaman\u0131z \u00f6nerilir.<\/p>\n<h3>3. MongoDB&#8217;ye d\u0131\u015far\u0131dan eri\u015fime izin vermek g\u00fcvenli midir?<\/h3>\n<p>MongoDB&#8217;ye d\u0131\u015far\u0131dan eri\u015fime izin vermek, do\u011fru g\u00fcvenlik \u00f6nlemleri al\u0131nmad\u0131\u011f\u0131nda b\u00fcy\u00fck bir risk te\u015fkil eder. \u00dcretim ortamlar\u0131nda do\u011frudan d\u0131\u015far\u0131dan eri\u015fim yerine a\u015fa\u011f\u0131daki y\u00f6ntemler \u00f6nerilir:<\/p>\n<ul>\n<li><strong>Kimlik Do\u011frulama ve Yetkilendirme:<\/strong> Her zaman kimlik do\u011frulamay\u0131 (<code>security.authorization: enabled<\/code>) etkinle\u015ftirin ve rol tabanl\u0131 eri\u015fim kontrol\u00fc ile kullan\u0131c\u0131lar olu\u015fturun.<\/li>\n<li><strong>G\u00fcvenlik Duvar\u0131 (UFW):<\/strong> Sadece belirli IP adreslerinden (uygulama sunucunuzun IP&#8217;si gibi) MongoDB portuna (27017) eri\u015fime izin verin.<\/li>\n<li><strong>A\u011f Yap\u0131land\u0131rmas\u0131:<\/strong> MongoDB&#8217;yi sadece yerel a\u011f i\u00e7inde veya bir VPN arkas\u0131nda \u00e7al\u0131\u015ft\u0131r\u0131n.<\/li>\n<li><strong>SSH T\u00fcnelleme:<\/strong> G\u00fcvenli ba\u011flant\u0131lar i\u00e7in SSH t\u00fcnelleri kullan\u0131n.<\/li>\n<\/ul>\n<p><code>\/etc\/mongod.conf<\/code> dosyas\u0131ndaki <code>bindIp<\/code> ayar\u0131n\u0131 dikkatlice yap\u0131land\u0131rarak sadece izin verilen IP&#8217;lerden ba\u011flant\u0131 kabul etmesini sa\u011flay\u0131n.<\/p>\n<h3>4. MongoDB veritaban\u0131m \u00e7al\u0131\u015fm\u0131yor, ne yapmal\u0131y\u0131m?<\/h3>\n<p>MongoDB servisi \u00e7al\u0131\u015fm\u0131yorsa, a\u015fa\u011f\u0131daki ad\u0131mlar\u0131 izleyerek sorunu te\u015fhis edebilirsiniz:<\/p>\n<ol>\n<li>Servisin durumunu kontrol edin: <code>sudo systemctl status mongod<\/code>. Hata mesajlar\u0131n\u0131 dikkatlice okuyun.<\/li>\n<li>MongoDB log dosyalar\u0131n\u0131 inceleyin: <code>sudo tail -f \/var\/log\/mongodb\/mongod.log<\/code>. Bu dosya, servisin neden ba\u015flamad\u0131\u011f\u0131n\u0131 veya neden durdu\u011funu g\u00f6steren \u00f6nemli bilgiler i\u00e7erir.<\/li>\n<li>Yap\u0131land\u0131rma dosyas\u0131n\u0131 (<code>\/etc\/mongod.conf<\/code>) kontrol edin. \u00d6zellikle <code>bindIp<\/code> ve <code>port<\/code> ayarlar\u0131n\u0131n do\u011fru oldu\u011fundan emin olun.<\/li>\n<li>Disk alan\u0131n\u0131z\u0131n yeterli olup olmad\u0131\u011f\u0131n\u0131 kontrol edin: <code>df -h<\/code>. MongoDB&#8217;nin \u00e7al\u0131\u015fmas\u0131 i\u00e7in yeterli disk alan\u0131na ihtiyac\u0131 vard\u0131r.<\/li>\n<li>Gerekirse servisi yeniden ba\u015flatmay\u0131 deneyin: <code>sudo systemctl restart mongod<\/code>.<\/li>\n<\/ol>\n<h3>5. Replika seti nedir ve neden kullanmal\u0131y\u0131m?<\/h3>\n<p>Bir replika seti, ayn\u0131 veri k\u00fcmesinin birden fazla kopyas\u0131n\u0131 bar\u0131nd\u0131ran bir MongoDB sunucular\u0131 grubudur. Bu set, y\u00fcksek eri\u015filebilirlik (high availability) ve veri yedeklili\u011fi sa\u011flar. Bir replika setinde birincil (primary) d\u00fc\u011f\u00fcm ve bir veya daha fazla ikincil (secondary) d\u00fc\u011f\u00fcm bulunur. Birincil d\u00fc\u011f\u00fcm t\u00fcm yazma i\u015flemlerini al\u0131r ve verileri ikincil d\u00fc\u011f\u00fcmlere senkronize eder. E\u011fer birincil d\u00fc\u011f\u00fcm ar\u0131zalan\u0131rsa, ikincil d\u00fc\u011f\u00fcmlerden biri otomatik olarak yeni bir birincil olarak se\u00e7ilir, b\u00f6ylece veri taban\u0131n\u0131n kesintisiz \u00e7al\u0131\u015fmas\u0131 sa\u011flan\u0131r.<\/p>\n<p>Replika setlerini kullanman\u0131z i\u00e7in ba\u015fl\u0131ca nedenler:<\/p>\n<ul>\n<li><strong>Y\u00fcksek Eri\u015filebilirlik:<\/strong> Donan\u0131m ar\u0131zalar\u0131 veya planl\u0131 bak\u0131m \u00e7al\u0131\u015fmalar\u0131 s\u0131ras\u0131nda dahi veri taban\u0131n\u0131z\u0131n eri\u015filebilir kalmas\u0131n\u0131 sa\u011flar.<\/li>\n<li><strong>Veri Yedeklili\u011fi:<\/strong> Verilerinizin birden fazla kopyas\u0131n\u0131 tutarak veri kayb\u0131 riskini azalt\u0131r.<\/li>\n<li><strong>Okuma \u00d6l\u00e7eklenebilirli\u011fi:<\/strong> \u0130kincil d\u00fc\u011f\u00fcmlerden okuma i\u015flemleri yaparak (uygulama gereksinimlerine ba\u011fl\u0131 olarak) okuma y\u00fck\u00fcn\u00fc da\u011f\u0131tabilirsiniz.<\/li>\n<li><strong>Felaket Kurtarma:<\/strong> Birincil veri merkezinin tamamen \u00e7\u00f6kmesi durumunda, farkl\u0131 bir co\u011frafi konumdaki ikincil d\u00fc\u011f\u00fcmlerden veri kurtarma imkan\u0131 sunar.<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"MongoDB Kurulumu Ubuntu&#8217;da: Ad\u0131m Ad\u0131m Rehber Ubuntu i\u015fletim sisteminde MongoDB&#8217;yi sorunsuz bir \u015fekilde nas\u0131l kuraca\u011f\u0131n\u0131z\u0131 merak m\u0131 ediyorsunuz?&hellip;","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"csco_page_header_type":"","csco_page_load_nextpost":"","csco_page_subscribe_form":"","csco_page_contact_form":"","footnotes":""},"categories":[1468],"tags":[],"class_list":{"0":"post-37558","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-ubuntu","7":"cs-entry","8":"cs-video-wrap"},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v20.5 (Yoast SEO v25.3.1) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>MongoDB Nedir ve Neden Ubuntu&#039;da Tercih Edilir?<\/title>\n<meta name=\"description\" content=\"Ubuntu i\u015fletim sisteminde MongoDB&#039;yi sorunsuz bir \u015fekilde nas\u0131l kuraca\u011f\u0131n\u0131z\u0131 merak m\u0131 ediyorsunuz? Bu kapsaml\u0131 rehber, ad\u0131m ad\u0131m kurulumdan ileri d\u00fczey yap\u0131land\u0131rmaya kadar t\u00fcm s\u00fcreci detayl\u0131ca a\u00e7\u0131kl\u0131yor. Modern uygulamalar\u0131n\u0131z i\u00e7in g\u00fc\u00e7l\u00fc bir veri taban\u0131 altyap\u0131s\u0131 kurmaya haz\u0131r olun.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/fatihsoysal.com\/blog\/mongodb-nedir-ve-neden-ubuntuda-tercih-edilir\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"MongoDB Nedir ve Neden Ubuntu&#039;da Tercih Edilir?\" \/>\n<meta property=\"og:description\" content=\"Ubuntu i\u015fletim sisteminde MongoDB&#039;yi sorunsuz bir \u015fekilde nas\u0131l kuraca\u011f\u0131n\u0131z\u0131 merak m\u0131 ediyorsunuz? Bu kapsaml\u0131 rehber, ad\u0131m ad\u0131m kurulumdan ileri d\u00fczey yap\u0131land\u0131rmaya kadar t\u00fcm s\u00fcreci detayl\u0131ca a\u00e7\u0131kl\u0131yor. Modern uygulamalar\u0131n\u0131z i\u00e7in g\u00fc\u00e7l\u00fc bir veri taban\u0131 altyap\u0131s\u0131 kurmaya haz\u0131r olun.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/mongodb-nedir-ve-neden-ubuntuda-tercih-edilir\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2026-01-08T21:21:26+00:00\" \/>\n<meta name=\"author\" content=\"Fatih Soysal\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Yazan:\" \/>\n\t<meta name=\"twitter:data1\" content=\"Fatih Soysal\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tahmini okuma s\u00fcresi\" \/>\n\t<meta name=\"twitter:data2\" content=\"33 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/mongodb-nedir-ve-neden-ubuntuda-tercih-edilir\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/mongodb-nedir-ve-neden-ubuntuda-tercih-edilir\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"MongoDB Nedir ve Neden Ubuntu&#8217;da Tercih Edilir?\",\"datePublished\":\"2026-01-08T21:21:26+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/mongodb-nedir-ve-neden-ubuntuda-tercih-edilir\/\"},\"wordCount\":5829,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"articleSection\":[\"Ubuntu\"],\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/mongodb-nedir-ve-neden-ubuntuda-tercih-edilir\/#respond\"]}],\"copyrightYear\":\"2026\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/mongodb-nedir-ve-neden-ubuntuda-tercih-edilir\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/mongodb-nedir-ve-neden-ubuntuda-tercih-edilir\/\",\"name\":\"MongoDB Nedir ve Neden Ubuntu'da Tercih Edilir?\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2026-01-08T21:21:26+00:00\",\"description\":\"Ubuntu i\u015fletim sisteminde MongoDB'yi sorunsuz bir \u015fekilde nas\u0131l kuraca\u011f\u0131n\u0131z\u0131 merak m\u0131 ediyorsunuz? Bu kapsaml\u0131 rehber, ad\u0131m ad\u0131m kurulumdan ileri d\u00fczey yap\u0131land\u0131rmaya kadar t\u00fcm s\u00fcreci detayl\u0131ca a\u00e7\u0131kl\u0131yor. Modern uygulamalar\u0131n\u0131z i\u00e7in g\u00fc\u00e7l\u00fc bir veri taban\u0131 altyap\u0131s\u0131 kurmaya haz\u0131r olun.\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/mongodb-nedir-ve-neden-ubuntuda-tercih-edilir\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/mongodb-nedir-ve-neden-ubuntuda-tercih-edilir\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/mongodb-nedir-ve-neden-ubuntuda-tercih-edilir\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"MongoDB Nedir ve Neden Ubuntu&#8217;da Tercih Edilir?\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/\",\"name\":\"Fatihsoysal.com\",\"description\":\"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim\",\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"tr\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\",\"name\":\"Fatih Soysal\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"tr\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"contentUrl\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"width\":512,\"height\":512,\"caption\":\"Fatih Soysal\"},\"logo\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\"},\"description\":\"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"MongoDB Nedir ve Neden Ubuntu'da Tercih Edilir?","description":"Ubuntu i\u015fletim sisteminde MongoDB'yi sorunsuz bir \u015fekilde nas\u0131l kuraca\u011f\u0131n\u0131z\u0131 merak m\u0131 ediyorsunuz? Bu kapsaml\u0131 rehber, ad\u0131m ad\u0131m kurulumdan ileri d\u00fczey yap\u0131land\u0131rmaya kadar t\u00fcm s\u00fcreci detayl\u0131ca a\u00e7\u0131kl\u0131yor. Modern uygulamalar\u0131n\u0131z i\u00e7in g\u00fc\u00e7l\u00fc bir veri taban\u0131 altyap\u0131s\u0131 kurmaya haz\u0131r olun.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/fatihsoysal.com\/blog\/mongodb-nedir-ve-neden-ubuntuda-tercih-edilir\/","og_locale":"tr_TR","og_type":"article","og_title":"MongoDB Nedir ve Neden Ubuntu'da Tercih Edilir?","og_description":"Ubuntu i\u015fletim sisteminde MongoDB'yi sorunsuz bir \u015fekilde nas\u0131l kuraca\u011f\u0131n\u0131z\u0131 merak m\u0131 ediyorsunuz? Bu kapsaml\u0131 rehber, ad\u0131m ad\u0131m kurulumdan ileri d\u00fczey yap\u0131land\u0131rmaya kadar t\u00fcm s\u00fcreci detayl\u0131ca a\u00e7\u0131kl\u0131yor. Modern uygulamalar\u0131n\u0131z i\u00e7in g\u00fc\u00e7l\u00fc bir veri taban\u0131 altyap\u0131s\u0131 kurmaya haz\u0131r olun.","og_url":"https:\/\/fatihsoysal.com\/blog\/mongodb-nedir-ve-neden-ubuntuda-tercih-edilir\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2026-01-08T21:21:26+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"33 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/mongodb-nedir-ve-neden-ubuntuda-tercih-edilir\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/mongodb-nedir-ve-neden-ubuntuda-tercih-edilir\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"MongoDB Nedir ve Neden Ubuntu&#8217;da Tercih Edilir?","datePublished":"2026-01-08T21:21:26+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/mongodb-nedir-ve-neden-ubuntuda-tercih-edilir\/"},"wordCount":5829,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"articleSection":["Ubuntu"],"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/mongodb-nedir-ve-neden-ubuntuda-tercih-edilir\/#respond"]}],"copyrightYear":"2026","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/mongodb-nedir-ve-neden-ubuntuda-tercih-edilir\/","url":"https:\/\/fatihsoysal.com\/blog\/mongodb-nedir-ve-neden-ubuntuda-tercih-edilir\/","name":"MongoDB Nedir ve Neden Ubuntu'da Tercih Edilir?","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2026-01-08T21:21:26+00:00","description":"Ubuntu i\u015fletim sisteminde MongoDB'yi sorunsuz bir \u015fekilde nas\u0131l kuraca\u011f\u0131n\u0131z\u0131 merak m\u0131 ediyorsunuz? Bu kapsaml\u0131 rehber, ad\u0131m ad\u0131m kurulumdan ileri d\u00fczey yap\u0131land\u0131rmaya kadar t\u00fcm s\u00fcreci detayl\u0131ca a\u00e7\u0131kl\u0131yor. Modern uygulamalar\u0131n\u0131z i\u00e7in g\u00fc\u00e7l\u00fc bir veri taban\u0131 altyap\u0131s\u0131 kurmaya haz\u0131r olun.","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/mongodb-nedir-ve-neden-ubuntuda-tercih-edilir\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/mongodb-nedir-ve-neden-ubuntuda-tercih-edilir\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/mongodb-nedir-ve-neden-ubuntuda-tercih-edilir\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"MongoDB Nedir ve Neden Ubuntu&#8217;da Tercih Edilir?"}]},{"@type":"WebSite","@id":"https:\/\/fatihsoysal.com\/blog\/#website","url":"https:\/\/fatihsoysal.com\/blog\/","name":"Fatihsoysal.com","description":"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim","publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"tr"},{"@type":["Person","Organization"],"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1","name":"Fatih Soysal","image":{"@type":"ImageObject","inLanguage":"tr","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","contentUrl":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","width":512,"height":512,"caption":"Fatih Soysal"},"logo":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/"},"description":"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.","url":"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/"}]}},"yoast_meta":{"yoast_wpseo_title":"","yoast_wpseo_metadesc":"","yoast_wpseo_canonical":""},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/37558","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/comments?post=37558"}],"version-history":[{"count":0,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/37558\/revisions"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=37558"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=37558"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=37558"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}