{"id":41718,"date":"2026-05-12T09:04:24","date_gmt":"2026-05-12T06:04:24","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/gercek-is-ilanlari-veri-setiyle-mongodb-sorgu-pratigi-rehberi\/"},"modified":"2026-05-12T09:04:24","modified_gmt":"2026-05-12T06:04:24","slug":"gercek-is-ilanlari-veri-setiyle-mongodb-sorgu-pratigi-rehberi","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/gercek-is-ilanlari-veri-setiyle-mongodb-sorgu-pratigi-rehberi\/","title":{"rendered":"Ger\u00e7ek \u0130\u015f \u0130lanlar\u0131 Veri Setiyle MongoDB Sorgu Prati\u011fi Rehberi"},"content":{"rendered":"<h2>Ger\u00e7ek \u0130\u015f \u0130lanlar\u0131 Veri Setiyle MongoDB Sorgu Prati\u011fi Rehberi<\/h2>\n<p>G\u00fcn\u00fcm\u00fcz\u00fcn rekabet\u00e7i i\u015f d\u00fcnyas\u0131nda, do\u011fru yetene\u011fi do\u011fru pozisyonla e\u015fle\u015ftirmek veya hayalinizdeki i\u015fi bulmak, b\u00fcy\u00fck veri y\u0131\u011f\u0131nlar\u0131n\u0131 etkili bir \u015fekilde analiz etmeyi gerektirir. \u0130\u015f arama s\u00fcre\u00e7lerinde veri, alt\u0131n de\u011ferindedir ve bu devasa bilgiyi en verimli \u015fekilde sorgulamak, filtrelemek ve analiz etmek kritik \u00f6neme sahiptir. MongoDB, esnek ve \u00f6l\u00e7eklenebilir yap\u0131s\u0131yla bu ihtiyaca g\u00fc\u00e7l\u00fc bir \u00e7\u00f6z\u00fcm sunar. Bu rehberde, ger\u00e7ek bir i\u015f ilan\u0131 veri seti senaryosu \u00fczerinden MongoDB&#8217;nin g\u00fc\u00e7l\u00fc sorgulama yeteneklerini ad\u0131m ad\u0131m ke\u015ffedecek, veri modellemeden ileri d\u00fczey agregasyonlara kadar pratik uygulamalarla bilgi birikiminizi peki\u015ftireceksiniz. Kariyer portallar\u0131, \u0130K profesyonelleri ve veri analistleri i\u00e7in vazge\u00e7ilmez bir ara\u00e7 olan MongoDB&#8217;yi bu rehberle ba\u015ftan sona \u00f6\u011freneceksiniz.<\/p>\n<h2>MongoDB Neden \u00d6nemli ve \u0130\u015f \u0130lanlar\u0131 Veri Setiyle \u0130li\u015fkisi Nedir?<\/h2>\n<p>Modern uygulama geli\u015ftirme d\u00fcnyas\u0131nda veri depolama ve y\u00f6netimi, her zamankinden daha karma\u015f\u0131k hale gelmi\u015ftir. Geleneksel ili\u015fkisel veritabanlar\u0131 (RDBMS), belirli bir yap\u0131ya ve \u015femaya ba\u011fl\u0131 kalarak verileri tablolar halinde d\u00fczenlerken, g\u00fcn\u00fcm\u00fcz\u00fcn dinamik ve h\u0131zla de\u011fi\u015fen veri ihtiya\u00e7lar\u0131 \u00e7o\u011fu zaman daha esnek \u00e7\u00f6z\u00fcmler gerektirir. \u0130\u015fte bu noktada NoSQL veritabanlar\u0131, \u00f6zellikle de belge tabanl\u0131 bir NoSQL veritaban\u0131 olan MongoDB devreye girer. MongoDB, verileri JSON benzeri BSON (Binary JSON) format\u0131nda belgeler (documents) olarak depolar. Bu belgeler, esnek bir \u015femaya (schema) sahip olabilir; yani ayn\u0131 koleksiyon (collection) i\u00e7indeki belgeler farkl\u0131 alanlara (fields) sahip olabilirler. Bu \u00f6zellik, \u00f6zellikle yap\u0131land\u0131r\u0131lmam\u0131\u015f veya yar\u0131 yap\u0131land\u0131r\u0131lm\u0131\u015f verilerle \u00e7al\u0131\u015f\u0131rken b\u00fcy\u00fck bir avantaj sa\u011flar.<\/p>\n<p>\u0130\u015f ilanlar\u0131 veri seti, MongoDB&#8217;nin g\u00fcc\u00fcn\u00fc g\u00f6stermek i\u00e7in m\u00fckemmel bir \u00f6rnektir. Bir i\u015f ilan\u0131 d\u00fc\u015f\u00fcn\u00fcn: Bir pozisyon ad\u0131, firma ad\u0131, lokasyon, maa\u015f aral\u0131\u011f\u0131, deneyim y\u0131l\u0131, gereken yetenekler, yay\u0131nlanma tarihi gibi temel bilgiler i\u00e7erir. Ancak her i\u015f ilan\u0131 ayn\u0131 yap\u0131ya sahip olmayabilir. \u00d6rne\u011fin, bir &#8220;Yaz\u0131l\u0131m M\u00fchendisi&#8221; ilan\u0131 &#8220;programlama dilleri&#8221; ve &#8220;\u00e7er\u00e7eveler (frameworks)&#8221; gibi yetenek alanlar\u0131na sahipken, bir &#8220;Pazarlama Uzman\u0131&#8221; ilan\u0131 &#8220;sosyal medya y\u00f6netimi&#8221; ve &#8220;SEO bilgisi&#8221; gibi farkl\u0131 yetenek alanlar\u0131na sahip olabilir. Geleneksel bir ili\u015fkisel veritaban\u0131nda bu farkl\u0131l\u0131klar\u0131 y\u00f6netmek, karma\u015f\u0131k tablo birle\u015fimleri (joins) veya \u00e7ok say\u0131da bo\u015f (null) alan i\u00e7eren tablolar gerektirebilir. MongoDB&#8217;nin esnek \u015femas\u0131 sayesinde, her i\u015f ilan\u0131 kendi benzersiz alan setini bar\u0131nd\u0131rabilir ve bu da veri modellemeyi \u00e7ok daha basit ve do\u011fal hale getirir.<\/p>\n<p>Ayr\u0131ca, i\u015f arama portallar\u0131nda kullan\u0131c\u0131lar genellikle birden fazla kritere g\u00f6re arama yaparlar: &#8220;\u0130stanbul&#8217;da Java bilen, en az 3 y\u0131l deneyimli Yaz\u0131l\u0131m M\u00fchendisi ilanlar\u0131&#8221; gibi. MongoDB&#8217;nin g\u00fc\u00e7l\u00fc sorgulama dili, bu t\u00fcr karma\u015f\u0131k sorgular\u0131 tek bir komutla ve y\u00fcksek performansla ger\u00e7ekle\u015ftirmeye olanak tan\u0131r. Belge tabanl\u0131 yap\u0131s\u0131, ilgili t\u00fcm verilerin tek bir belge i\u00e7inde toplanabilmesi sayesinde, genellikle birden fazla tabloya yay\u0131lm\u0131\u015f verileri birle\u015ftirmek i\u00e7in gereken pahal\u0131 birle\u015fim (join) i\u015flemlerinden ka\u00e7\u0131n\u0131r. Bu da sorgu performans\u0131n\u0131 \u00f6nemli \u00f6l\u00e7\u00fcde art\u0131r\u0131r. \u00d6l\u00e7eklenebilirlik (scalability) a\u00e7\u0131s\u0131ndan da MongoDB, yatay \u00f6l\u00e7eklendirme (horizontal scaling) yetenekleri sayesinde milyonlarca i\u015f ilan\u0131n\u0131 ve milyonlarca kullan\u0131c\u0131y\u0131 rahatl\u0131kla destekleyebilir. Bu \u00f6zellikler, MongoDB&#8217;yi i\u015f ilan\u0131 portallar\u0131, e-ticaret siteleri, i\u00e7erik y\u00f6netim sistemleri ve di\u011fer b\u00fcy\u00fck \u00f6l\u00e7ekli, dinamik veri uygulamalar\u0131 i\u00e7in ideal bir se\u00e7im haline getirir.<\/p>\n<h2>\u0130\u015f \u0130lanlar\u0131 Veri Seti Tasar\u0131m\u0131: MongoDB Modellemeyi Anlamak<\/h2>\n<p>MongoDB&#8217;de veri modelleme, ili\u015fkisel veritabanlar\u0131ndan farkl\u0131 bir d\u00fc\u015f\u00fcnce yap\u0131s\u0131 gerektirir. Odak noktas\u0131, verileri nas\u0131l sorgulayaca\u011f\u0131n\u0131z ve uygulaman\u0131z\u0131n ihtiya\u00e7lar\u0131 do\u011frultusunda en iyi performans\u0131 nas\u0131l elde edece\u011finizdir. \u0130\u015f ilan\u0131 veri seti \u00f6rne\u011fimiz i\u00e7in, her bir i\u015f ilan\u0131 bir belge (document) olarak temsil edilecektir. Bu belgeler, <code>ilanlar<\/code> ad\u0131n\u0131 verece\u011fimiz bir koleksiyonda (collection) saklanacakt\u0131r. A\u015fa\u011f\u0131da, \u00f6rnek bir i\u015f ilan\u0131 belgesinin yap\u0131s\u0131n\u0131 ve bu yap\u0131n\u0131n neden esnek ve etkili oldu\u011funu inceleyelim.<\/p>\n<p>Bir i\u015f ilan\u0131 belgesi, genellikle a\u015fa\u011f\u0131daki ana alanlar\u0131 i\u00e7erecektir:<\/p>\n<ul>\n<li><code>_id<\/code>: MongoDB taraf\u0131ndan otomatik olarak atanan benzersiz belge tan\u0131mlay\u0131c\u0131s\u0131 (identifier).<\/li>\n<li><code>pozisyonAdi<\/code>: \u0130lan\u0131n ba\u015fl\u0131\u011f\u0131 (\u00f6rne\u011fin, &#8220;K\u0131demli Yaz\u0131l\u0131m M\u00fchendisi&#8221;).<\/li>\n<li><code>firmaAdi<\/code>: \u0130lan\u0131 yay\u0131nlayan \u015firketin ad\u0131.<\/li>\n<li><code>lokasyon<\/code>: \u015eehir ve il\u00e7e bilgilerini i\u00e7eren g\u00f6m\u00fcl\u00fc (embedded) bir belge. Bu, lokasyon bazl\u0131 sorgular\u0131 kolayla\u015ft\u0131r\u0131r.<\/li>\n<li><code>maasAraligi<\/code>: Minimum ve maksimum maa\u015f de\u011ferlerini i\u00e7eren g\u00f6m\u00fcl\u00fc bir belge. Maa\u015f aral\u0131\u011f\u0131 olmayan ilanlar i\u00e7in bu alan bo\u015f b\u0131rak\u0131labilir veya hi\u00e7 eklenmeyebilir, bu da esnek \u015feman\u0131n bir \u00f6rne\u011fidir.<\/li>\n<li><code>deneyimYili<\/code>: \u0130stenen minimum deneyim y\u0131l\u0131.<\/li>\n<li><code>gerekenYetenekler<\/code>: Bir dizi (array) olarak belirtilen yetenekler (\u00f6rne\u011fin, [&#8220;Java&#8221;, &#8220;Spring Boot&#8221;, &#8220;REST API&#8221;]).<\/li>\n<li><code>yayinlanmaTarihi<\/code>: \u0130lan\u0131n yay\u0131nland\u0131\u011f\u0131 tarih ve saat.<\/li>\n<li><code>sonBasvuruTarihi<\/code>: \u0130lan\u0131n son ba\u015fvuru tarihi (iste\u011fe ba\u011fl\u0131).<\/li>\n<li><code>aktif<\/code>: \u0130lan\u0131n hala aktif olup olmad\u0131\u011f\u0131n\u0131 belirten boolean bir de\u011fer.<\/li>\n<li><code>aciklama<\/code>: \u0130\u015f tan\u0131m\u0131n\u0131 i\u00e7eren metin alan\u0131.<\/li>\n<\/ul>\n<p>Bu yap\u0131, bir i\u015f ilan\u0131n\u0131n t\u00fcm ilgili bilgilerini tek bir belge i\u00e7inde tutmam\u0131z\u0131 sa\u011flar. Bu &#8220;denormalize&#8221; yakla\u015f\u0131m, okuma (read) operasyonlar\u0131n\u0131 h\u0131zland\u0131r\u0131r \u00e7\u00fcnk\u00fc bir ilan\u0131 g\u00f6r\u00fcnt\u00fclemek i\u00e7in birden fazla koleksiyon aras\u0131nda birle\u015ftirme (join) yapmaya gerek kalmaz. \u0130\u015fte \u00f6rnek bir belge:<\/p>\n<div class=\"code-container\">\n<pre><code>\n{\n  \"_id\": ObjectId(\"653a9e2a7b1c2d3e4f5a6b7c\"),\n  \"pozisyonAdi\": \"K\u0131demli Full Stack Geli\u015ftirici\",\n  \"firmaAdi\": \"Yenilik\u00e7i \u00c7\u00f6z\u00fcmler A.\u015e.\",\n  \"lokasyon\": {\n    \"sehir\": \"\u0130stanbul\",\n    \"ilce\": \"Kad\u0131k\u00f6y\"\n  },\n  \"maasAraligi\": {\n    \"min\": 90000,\n    \"max\": 140000\n  },\n  \"deneyimYili\": 5,\n  \"gerekenYetenekler\": [\"JavaScript\", \"React\", \"Node.js\", \"MongoDB\", \"AWS\"],\n  \"yayinlanmaTarihi\": ISODate(\"2023-10-25T09:30:00Z\"),\n  \"sonBasvuruTarihi\": ISODate(\"2023-11-25T00:00:00Z\"),\n  \"aktif\": true,\n  \"aciklama\": \"Web uygulamalar\u0131 geli\u015ftirmede en az 5 y\u0131l deneyimli, React ve Node.js konusunda uzman full stack geli\u015ftirici ar\u0131yoruz.\"\n}\n        <\/pre>\n<p><\/code>\n    <\/div>\n<p>G\u00f6m\u00fcl\u00fc belgeler (embedded documents) ve diziler (arrays) kullanmak, verileri mant\u0131ksal olarak bir arada tutar ve ilgili bilgilere tek bir sorguyla eri\u015fimi kolayla\u015ft\u0131r\u0131r. \u00d6rne\u011fin, <code>lokasyon<\/code> alan\u0131 bir nesne olarak tan\u0131mland\u0131\u011f\u0131nda, hem \u015fehre hem de il\u00e7eye g\u00f6re filtreleme yapmak \u00e7ok daha sezgisel hale gelir. Ayn\u0131 \u015fekilde, <code>gerekenYetenekler<\/code> bir dizi oldu\u011fu i\u00e7in, bir ilan\u0131n birden fazla yetene\u011fi i\u00e7ermesi do\u011fal bir \u015fekilde kar\u015f\u0131lanabilir ve bu yetenekler \u00fczerinde sorgulama yapmak (\u00f6rne\u011fin, \"JavaScript\" yetene\u011fi olan t\u00fcm ilanlar\u0131 bulmak) olduk\u00e7a basittir.<\/p>\n<p>Bu veri modelleme yakla\u015f\u0131m\u0131, gelecekteki de\u011fi\u015fikliklere de a\u00e7\u0131kt\u0131r. E\u011fer bir i\u015f ilan\u0131na yeni bir alan eklenmesi gerekirse (\u00f6rne\u011fin, \"\u00e7al\u0131\u015fma modeli\": \"hibrit\", \"uzaktan\"), mevcut belgeleri de\u011fi\u015ftirmeden veya karma\u015f\u0131k bir veritaban\u0131 \u015fema g\u00fcncellemesi yapmadan yeni alanlar\u0131 do\u011frudan yeni belgelere ekleyebiliriz. Bu esneklik, h\u0131zl\u0131 \u00fcr\u00fcn geli\u015ftirme ve de\u011fi\u015fen i\u015f gereksinimlerine adaptasyon yetene\u011fi a\u00e7\u0131s\u0131ndan b\u00fcy\u00fck bir avantajd\u0131r.<\/p>\n<h3>Temel Sorgulama Operasyonlar\u0131: \u0130\u015f \u0130lanlar\u0131n\u0131 Ke\u015ffetmek<\/h3>\n<p>MongoDB'nin g\u00fcc\u00fcn\u00fc anlaman\u0131n ilk ad\u0131m\u0131, temel sorgulama operasyonlar\u0131n\u0131 kavramakt\u0131r. Bir i\u015f ilan\u0131 portal\u0131nda, kullan\u0131c\u0131lar genellikle t\u00fcm ilanlar\u0131 g\u00f6rmek, belirli kriterlere g\u00f6re filtrelemek veya sadece belirli alanlar\u0131 g\u00f6r\u00fcnt\u00fclemek isterler. MongoDB'nin <code>find()<\/code> ve <code>findOne()<\/code> metodlar\u0131, bu ihtiya\u00e7lar\u0131 kar\u015f\u0131lamak i\u00e7in kullan\u0131l\u0131r. Bu metodlar, bir koleksiyondaki belgeleri sorgulamak i\u00e7in ana ara\u00e7lard\u0131r.<\/p>\n<p><strong>T\u00fcm \u0130\u015f \u0130lanlar\u0131n\u0131 Getirme:<\/strong> Bir koleksiyondaki t\u00fcm belgeleri getirmek i\u00e7in <code>find()<\/code> metoduna bo\u015f bir sorgu objesi (query object) ge\u00e7iririz. Bu, genellikle bir uygulaman\u0131n ana sayfas\u0131nda veya bir liste g\u00f6r\u00fcn\u00fcm\u00fcnde t\u00fcm aktif ilanlar\u0131 g\u00f6stermek i\u00e7in kullan\u0131l\u0131r.<\/p>\n<div class=\"code-container\">\n<pre><code>\ndb.ilanlar.find({})\n        <\/pre>\n<p><\/code>\n    <\/div>\n<p>Bu sorgu, <code>ilanlar<\/code> koleksiyonundaki t\u00fcm i\u015f ilan\u0131 belgelerini d\u00f6nd\u00fcrecektir. Ancak, ger\u00e7ek bir senaryoda genellikle bir limit (s\u0131n\u0131r) veya belirli bir s\u0131ralama (sort) ile birlikte kullan\u0131l\u0131r\u0131z.<\/p>\n<p><strong>Belirli Bir Ko\u015fula G\u00f6re \u0130\u015f \u0130lanlar\u0131n\u0131 Filtreleme:<\/strong> \u00c7o\u011fu zaman, kullan\u0131c\u0131lar belirli kriterlere g\u00f6re arama yaparlar. \u00d6rne\u011fin, belirli bir firmaya ait ilanlar\u0131 veya belirli bir pozisyon ad\u0131n\u0131 i\u00e7eren ilanlar\u0131 bulmak isteyebilirler. <code>find()<\/code> metoduna bir sorgu objesi ge\u00e7irerek bu filtrelemeyi yapabiliriz.<\/p>\n<div class=\"code-container\">\n<pre><code>\n\/\/ Sadece \"Yenilik\u00e7i \u00c7\u00f6z\u00fcmler A.\u015e.\" firmas\u0131na ait ilanlar\u0131 bulma\ndb.ilanlar.find({ \"firmaAdi\": \"Yenilik\u00e7i \u00c7\u00f6z\u00fcmler A.\u015e.\" })\n\n\/\/ Sadece \"Yaz\u0131l\u0131m M\u00fchendisi\" pozisyonu i\u00e7in ilanlar\u0131 bulma\ndb.ilanlar.find({ \"pozisyonAdi\": \"Yaz\u0131l\u0131m M\u00fchendisi\" })\n\n\/\/ \u0130stanbul'daki t\u00fcm ilanlar\u0131 bulma (g\u00f6m\u00fcl\u00fc belge sorgulama)\ndb.ilanlar.find({ \"lokasyon.sehir\": \"\u0130stanbul\" })\n        <\/pre>\n<p><\/code>\n    <\/div>\n<p>Burada dikkat edilmesi gereken nokta, g\u00f6m\u00fcl\u00fc belgelerdeki alanlara eri\u015fmek i\u00e7in \"nokta notasyonu\" (dot notation) kullanmam\u0131zd\u0131r. \u00d6rne\u011fin, <code>lokasyon.sehir<\/code> ifadesi, <code>lokasyon<\/code> belgesinin i\u00e7indeki <code>sehir<\/code> alan\u0131na eri\u015fir.<\/p>\n<p><strong>Tek Bir \u0130\u015f \u0130lan\u0131n\u0131 Getirme:<\/strong> Bazen, \u00f6zellikle bir ilan\u0131n detay sayfas\u0131n\u0131 g\u00f6r\u00fcnt\u00fclemek istedi\u011fimizde, sadece tek bir belgeye ihtiyac\u0131m\u0131z olur. Bu durumda <code>findOne()<\/code> metodunu kullan\u0131r\u0131z. Bu metod, sorguyla e\u015fle\u015fen ilk belgeyi d\u00f6nd\u00fcr\u00fcr.<\/p>\n<div class=\"code-container\">\n<pre><code>\n\/\/ Belirli bir pozisyon ve \u015fehirle e\u015fle\u015fen tek bir ilan bulma\ndb.ilanlar.findOne({ \"pozisyonAdi\": \"K\u0131demli Full Stack Geli\u015ftirici\", \"lokasyon.sehir\": \"\u0130stanbul\" })\n        <\/pre>\n<p><\/code>\n    <\/div>\n<p><strong>Projeksiyon (Projection) Kullanarak Belirli Alanlar\u0131 G\u00f6r\u00fcnt\u00fcleme:<\/strong> B\u00fcy\u00fck belgelerle \u00e7al\u0131\u015f\u0131rken, bazen belgenin t\u00fcm alanlar\u0131na ihtiyac\u0131m\u0131z olmayabilir. Sadece belirli alanlar\u0131 almak, a\u011f trafi\u011fini azalt\u0131r ve performans\u0131 art\u0131rabilir. <code>find()<\/code> veya <code>findOne()<\/code> metodlar\u0131n\u0131n ikinci parametresi olarak bir projeksiyon objesi ge\u00e7irerek hangi alanlar\u0131n dahil edilece\u011fini (<code>1<\/code>) veya hari\u00e7 tutulaca\u011f\u0131n\u0131 (<code>0<\/code>) belirtebiliriz. <code>_id<\/code> alan\u0131 varsay\u0131lan olarak dahil edilir ve onu hari\u00e7 tutmak i\u00e7in a\u00e7\u0131k\u00e7a <code>_id: 0<\/code> belirtmek gerekir.<\/p>\n<div class=\"code-container\">\n<pre><code>\n\/\/ T\u00fcm ilanlardan sadece pozisyon ad\u0131 ve firma ad\u0131n\u0131 getirme\ndb.ilanlar.find({}, { \"pozisyonAdi\": 1, \"firmaAdi\": 1, \"_id\": 0 })\n\n\/\/ \u0130stanbul'daki ilanlardan sadece pozisyon ad\u0131, lokasyon ve yay\u0131nlanma tarihini getirme\ndb.ilanlar.find(\n  { \"lokasyon.sehir\": \"\u0130stanbul\" },\n  { \"pozisyonAdi\": 1, \"lokasyon\": 1, \"yayinlanmaTarihi\": 1, \"_id\": 0 }\n)\n        <\/pre>\n<p><\/code>\n    <\/div>\n<p>Bu temel sorgulama operasyonlar\u0131, MongoDB'nin veri eri\u015fim yeteneklerinin temelini olu\u015fturur. Bu yetenekler sayesinde, bir i\u015f ilan\u0131 portal\u0131nda kullan\u0131c\u0131lar\u0131n arama ve filtreleme ihtiya\u00e7lar\u0131n\u0131 kolayca kar\u015f\u0131layabilir, performans\u0131 optimize edebilir ve sadece gerekli veriyi sunarak daha h\u0131zl\u0131 bir kullan\u0131c\u0131 deneyimi sa\u011flayabiliriz. Bu basit komutlar, daha karma\u015f\u0131k sorgular\u0131n yap\u0131 ta\u015flar\u0131d\u0131r ve MongoDB'de verimli bir \u015fekilde \u00e7al\u0131\u015fman\u0131n ilk ad\u0131m\u0131d\u0131r.<\/p>\n<h3>Geli\u015fmi\u015f Filtreleme ve Ko\u015fullar: Do\u011fru Aday\u0131 Bulmak<\/h3>\n<p>Temel sorgulama yeteneklerinin \u00f6tesine ge\u00e7erek, bir i\u015f ilan\u0131 portal\u0131nda kullan\u0131c\u0131lar\u0131n daha spesifik ve karma\u015f\u0131k arama ihtiya\u00e7lar\u0131n\u0131 kar\u015f\u0131lamak i\u00e7in MongoDB'nin geli\u015fmi\u015f filtreleme operat\u00f6rlerini kullanabiliriz. Bu operat\u00f6rler, say\u0131sal de\u011ferler, tarihler, diziler ve mant\u0131ksal ko\u015fullar \u00fczerinde g\u00fc\u00e7l\u00fc filtreleme se\u00e7enekleri sunar. Do\u011fru aday\u0131 veya do\u011fru i\u015fi bulmak, genellikle birden fazla kriterin ayn\u0131 anda de\u011ferlendirilmesini gerektirir.<\/p>\n<p><strong>Kar\u015f\u0131la\u015ft\u0131rma Operat\u00f6rleri:<\/strong> Maa\u015f aral\u0131\u011f\u0131 veya deneyim y\u0131l\u0131 gibi say\u0131sal de\u011ferler \u00fczerinde filtreleme yapmak i\u00e7in kar\u015f\u0131la\u015ft\u0131rma operat\u00f6rleri kullan\u0131l\u0131r:<\/p>\n<ul>\n<li><code>$eq<\/code>: E\u015fittir (varsay\u0131lan, genellikle belirtilmez)<\/li>\n<li><code>$gt<\/code>: B\u00fcy\u00fckt\u00fcr (greater than)<\/li>\n<li><code>$gte<\/code>: B\u00fcy\u00fck veya e\u015fittir (greater than or equal to)<\/li>\n<li><code>$lt<\/code>: K\u00fc\u00e7\u00fckt\u00fcr (less than)<\/li>\n<li><code>$lte<\/code>: K\u00fc\u00e7\u00fck veya e\u015fittir (less than or equal to)<\/li>\n<\/ul>\n<div class=\"code-container\">\n<pre><code>\n\/\/ En az 3 y\u0131l deneyim gerektiren ilanlar\u0131 bulma\ndb.ilanlar.find({ \"deneyimYili\": { \"$gte\": 3 } })\n\n\/\/ Maa\u015f aral\u0131\u011f\u0131 minimum 100.000 TL'den fazla olan ilanlar\u0131 bulma\ndb.ilanlar.find({ \"maasAraligi.min\": { \"$gt\": 100000 } })\n\n\/\/ Son ba\u015fvuru tarihi 2023 y\u0131l\u0131n\u0131n sonundan \u00f6nce olan ilanlar\u0131 bulma\ndb.ilanlar.find({ \"sonBasvuruTarihi\": { \"$lt\": ISODate(\"2024-01-01T00:00:00Z\") } })\n        <\/pre>\n<p><\/code>\n    <\/div>\n<p><strong>Mant\u0131ksal Operat\u00f6rler:<\/strong> Birden fazla ko\u015fulu birle\u015ftirmek veya tersine \u00e7evirmek i\u00e7in mant\u0131ksal operat\u00f6rler kullan\u0131l\u0131r:<\/p>\n<ul>\n<li><code>$and<\/code>: T\u00fcm ko\u015fullar\u0131n do\u011fru olmas\u0131 gerekir.<\/li>\n<li><code>$or<\/code>: Ko\u015fullardan en az birinin do\u011fru olmas\u0131 yeterlidir.<\/li>\n<li><code>$not<\/code>: Ko\u015fulun yanl\u0131\u015f olmas\u0131 gerekir.<\/li>\n<li><code>$nor<\/code>: T\u00fcm ko\u015fullar\u0131n yanl\u0131\u015f olmas\u0131 gerekir.<\/li>\n<\/ul>\n<div class=\"code-container\">\n<pre><code>\n\/\/ \u0130stanbul'da ve en az 5 y\u0131l deneyim gerektiren Yaz\u0131l\u0131m M\u00fchendisi ilanlar\u0131n\u0131 bulma\ndb.ilanlar.find({\n  \"$and\": [\n    { \"pozisyonAdi\": \"Yaz\u0131l\u0131m M\u00fchendisi\" },\n    { \"lokasyon.sehir\": \"\u0130stanbul\" },\n    { \"deneyimYili\": { \"$gte\": 5 } }\n  ]\n})\n\n\/\/ Ankara veya \u0130zmir'deki ilanlar\u0131 bulma\ndb.ilanlar.find({\n  \"$or\": [\n    { \"lokasyon.sehir\": \"Ankara\" },\n    { \"lokasyon.sehir\": \"\u0130zmir\" }\n  ]\n})\n        <\/pre>\n<p><\/code>\n    <\/div>\n<p><strong>Dizi Operat\u00f6rleri:<\/strong> <code>gerekenYetenekler<\/code> gibi diziler \u00fczerinde filtreleme yapmak i\u00e7in \u00f6zel operat\u00f6rler vard\u0131r:<\/p>\n<ul>\n<li><code>$in<\/code>: Bir alan\u0131n belirtilen de\u011ferlerden herhangi birini i\u00e7ermesi.<\/li>\n<li><code>$nin<\/code>: Bir alan\u0131n belirtilen de\u011ferlerden hi\u00e7birini i\u00e7ermemesi.<\/li>\n<li><code>$all<\/code>: Bir dizinin belirtilen t\u00fcm de\u011ferleri i\u00e7ermesi.<\/li>\n<li><code>$size<\/code>: Bir dizinin belirli bir boyutta olmas\u0131.<\/li>\n<\/ul>\n<div class=\"code-container\">\n<pre><code>\n\/\/ Hem \"Java\" hem de \"Spring Boot\" yetene\u011fi gerektiren ilanlar\u0131 bulma\ndb.ilanlar.find({ \"gerekenYetenekler\": { \"$all\": [\"Java\", \"Spring Boot\"] } })\n\n\/\/ \"React\" veya \"Angular\" yetene\u011fi gerektiren ilanlar\u0131 bulma\ndb.ilanlar.find({ \"gerekenYetenekler\": { \"$in\": [\"React\", \"Angular\"] } })\n\n\/\/ Hi\u00e7bir yetenek belirtilmemi\u015f ilanlar\u0131 bulma (dizi boyutu 0)\ndb.ilanlar.find({ \"gerekenYetenekler\": { \"$size\": 0 } })\n        <\/pre>\n<p><\/code>\n    <\/div>\n<p><strong>Metin Arama (Text Search) ve D\u00fczenli \u0130fadeler (Regular Expressions):<\/strong> Metin alanlar\u0131nda daha esnek aramalar yapmak i\u00e7in d\u00fczenli ifadeler veya MongoDB'nin metin arama \u00f6zelli\u011fi kullan\u0131labilir.<\/p>\n<div class=\"code-container\">\n<pre><code>\n\/\/ Pozisyon ad\u0131nda \"developer\" kelimesi ge\u00e7en ilanlar\u0131 bulma (b\u00fcy\u00fck\/k\u00fc\u00e7\u00fck harf duyars\u0131z)\ndb.ilanlar.find({ \"pozisyonAdi\": { \"$regex\": \"developer\", \"$options\": \"i\" } })\n        <\/pre>\n<p><\/code>\n    <\/div>\n<p>Bu geli\u015fmi\u015f filtreleme operat\u00f6rleri, bir i\u015f ilan\u0131 portal\u0131n\u0131n arama motorunu g\u00fc\u00e7lendirmek i\u00e7in hayati \u00f6neme sahiptir. Kullan\u0131c\u0131lar\u0131n \"\u0130stanbul'da, en az 3 y\u0131l deneyimli, Java veya Python bilen, maa\u015f beklentisi 80.000 TL \u00fczeri olan ve son ba\u015fvuru tarihi bu ay i\u00e7inde olan Backend Developer ilanlar\u0131n\u0131 g\u00f6ster\" gibi \u00e7ok detayl\u0131 ve spesifik sorgular yapmas\u0131na olanak tan\u0131r. Bu operat\u00f6rleri do\u011fru bir \u015fekilde birle\u015ftirerek, veri setinizdeki en alakal\u0131 bilgileri h\u0131zl\u0131 ve etkili bir \u015fekilde \u00e7ekebilirsiniz. Bu, hem i\u015f arayanlar hem de i\u015fverenler i\u00e7in daha verimli bir e\u015fle\u015fme s\u00fcreci sa\u011flar.<\/p>\n<h3>Veri G\u00fcncelleme ve Silme \u0130\u015flemleri: Dinamik Bir Portal Y\u00f6netimi<\/h3>\n<p>Bir i\u015f ilan\u0131 portal\u0131, sadece ilanlar\u0131 listelemekle kalmaz, ayn\u0131 zamanda bu ilanlar\u0131n ya\u015fam d\u00f6ng\u00fcs\u00fcn\u00fc de y\u00f6netmelidir. \u0130lanlar yay\u0131nlan\u0131r, g\u00fcncellenir (\u00f6rne\u011fin, maa\u015f bilgisi de\u011fi\u015febilir veya ek yetenekler eklenebilir) ve sonunda s\u00fcresi dolar veya kald\u0131r\u0131l\u0131r. MongoDB, bu t\u00fcr dinamik veri y\u00f6netim ihtiya\u00e7lar\u0131 i\u00e7in g\u00fc\u00e7l\u00fc g\u00fcncelleme (update) ve silme (delete) operasyonlar\u0131 sunar. Bu operasyonlar, verilerinizi g\u00fcncel ve do\u011fru tutmak i\u00e7in kritik \u00f6neme sahiptir.<\/p>\n<p><strong>Belge G\u00fcncelleme Operasyonlar\u0131:<\/strong> MongoDB, belgeleri g\u00fcncellemek i\u00e7in <code>updateOne()<\/code>, <code>updateMany()<\/code> ve <code>replaceOne()<\/code> gibi metodlar sunar. Genellikle, belirli alanlar\u0131 de\u011fi\u015ftirmek i\u00e7in g\u00fcncelleme operat\u00f6rleri (\u00f6rne\u011fin, <code>$set<\/code>, <code>$inc<\/code>, <code>$push<\/code>) kullan\u0131l\u0131r.<\/p>\n<p><strong><code>$set<\/code> Operat\u00f6r\u00fc ile Alan G\u00fcncelleme:<\/strong> Bir belgedeki bir veya daha fazla alan\u0131n de\u011ferini de\u011fi\u015ftirmek i\u00e7in <code>$set<\/code> operat\u00f6r\u00fc kullan\u0131l\u0131r. Bu, bir ilan\u0131n durumunu g\u00fcncellemek (aktif\/pasif), maa\u015f aral\u0131\u011f\u0131n\u0131 de\u011fi\u015ftirmek veya yeni bir alan eklemek i\u00e7in idealdir.<\/p>\n<div class=\"code-container\">\n<pre><code>\n\/\/ Belirli bir ilan\u0131n aktiflik durumunu pasife \u00e7ekme\ndb.ilanlar.updateOne(\n  { \"_id\": ObjectId(\"653a9e2a7b1c2d3e4f5a6b7c\") },\n  { \"$set\": { \"aktif\": false } }\n)\n\n\/\/ Bir ilan\u0131n maa\u015f aral\u0131\u011f\u0131n\u0131 ve son ba\u015fvuru tarihini g\u00fcncelleme\ndb.ilanlar.updateOne(\n  { \"pozisyonAdi\": \"K\u0131demli Full Stack Geli\u015ftirici\", \"firmaAdi\": \"Yenilik\u00e7i \u00c7\u00f6z\u00fcmler A.\u015e.\" },\n  { \"$set\": {\n      \"maasAraligi.min\": 95000,\n      \"maasAraligi.max\": 150000,\n      \"sonBasvuruTarihi\": ISODate(\"2023-12-31T00:00:00Z\")\n    }\n  }\n)\n        <\/pre>\n<p><\/code>\n    <\/div>\n<p><strong><code>$push<\/code> Operat\u00f6r\u00fc ile Diziye Eleman Ekleme:<\/strong> <code>gerekenYetenekler<\/code> gibi bir diziye yeni bir yetenek eklemek i\u00e7in <code>$push<\/code> operat\u00f6r\u00fcn\u00fc kullan\u0131r\u0131z.<\/p>\n<div class=\"code-container\">\n<pre><code>\n\/\/ Belirli bir ilana \"Docker\" yetene\u011fini ekleme\ndb.ilanlar.updateOne(\n  { \"_id\": ObjectId(\"653a9e2a7b1c2d3e4f5a6b7c\") },\n  { \"$push\": { \"gerekenYetenekler\": \"Docker\" } }\n)\n        <\/pre>\n<p><\/code>\n    <\/div>\n<p><strong><code>updateMany()<\/code> ile Birden Fazla Belgeyi G\u00fcncelleme:<\/strong> Birden fazla belgeyi ayn\u0131 anda g\u00fcncellemek gerekti\u011finde <code>updateMany()<\/code> kullan\u0131l\u0131r. \u00d6rne\u011fin, belirli bir tarihten \u00f6nce yay\u0131nlanm\u0131\u015f t\u00fcm ilanlar\u0131 pasife \u00e7ekmek veya bir \u015fehirdeki t\u00fcm ilanlar\u0131n il\u00e7e bilgisini standardize etmek.<\/p>\n<div class=\"code-container\">\n<pre><code><br \/>\n\/\/ Belirli bir tarihten \u00f6nce yay\u0131nlanm\u0131\u015f t\u00fcm ilanlar\u0131 pasife \u00e7ekme<br \/>\ndb.ilanlar.updateMany(<br \/>\n  { \"yayinlanmaTarihi\": { \"$lt\": ISODate(\"2023-09-01T<\/p>\n","protected":false},"excerpt":{"rendered":"G\u00fcn\u00fcm\u00fcz\u00fcn rekabet\u00e7i i\u015f d\u00fcnyas\u0131nda, do\u011fru yetene\u011fi do\u011fru pozisyonla e\u015fle\u015ftirmek veya hayalinizdeki i\u015fi bulmak, b\u00fcy\u00fck veri y\u0131\u011f\u0131nlar\u0131n\u0131 etkili bir \u015fekilde analiz etmeyi gerektirir.","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":[676],"tags":[],"class_list":{"0":"post-41718","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-mongodb","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>Ger\u00e7ek \u0130\u015f \u0130lanlar\u0131 Veri Setiyle MongoDB Sorgu Prati\u011fi Rehberi - Kodlar\u0131n Gizemli D\u00fcnyas\u0131<\/title>\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\/gercek-is-ilanlari-veri-setiyle-mongodb-sorgu-pratigi-rehberi\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Ger\u00e7ek \u0130\u015f \u0130lanlar\u0131 Veri Setiyle MongoDB Sorgu Prati\u011fi Rehberi\" \/>\n<meta property=\"og:description\" content=\"G\u00fcn\u00fcm\u00fcz\u00fcn rekabet\u00e7i i\u015f d\u00fcnyas\u0131nda, do\u011fru yetene\u011fi do\u011fru pozisyonla e\u015fle\u015ftirmek veya hayalinizdeki i\u015fi bulmak, b\u00fcy\u00fck veri y\u0131\u011f\u0131nlar\u0131n\u0131 etkili bir \u015fekilde analiz etmeyi gerektirir.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/gercek-is-ilanlari-veri-setiyle-mongodb-sorgu-pratigi-rehberi\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2026-05-12T06:04:24+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=\"13 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/gercek-is-ilanlari-veri-setiyle-mongodb-sorgu-pratigi-rehberi\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/gercek-is-ilanlari-veri-setiyle-mongodb-sorgu-pratigi-rehberi\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"Ger\u00e7ek \u0130\u015f \u0130lanlar\u0131 Veri Setiyle MongoDB Sorgu Prati\u011fi Rehberi\",\"datePublished\":\"2026-05-12T06:04:24+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/gercek-is-ilanlari-veri-setiyle-mongodb-sorgu-pratigi-rehberi\/\"},\"wordCount\":2176,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"articleSection\":[\"MongoDB\"],\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/gercek-is-ilanlari-veri-setiyle-mongodb-sorgu-pratigi-rehberi\/#respond\"]}],\"copyrightYear\":\"2026\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/gercek-is-ilanlari-veri-setiyle-mongodb-sorgu-pratigi-rehberi\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/gercek-is-ilanlari-veri-setiyle-mongodb-sorgu-pratigi-rehberi\/\",\"name\":\"Ger\u00e7ek \u0130\u015f \u0130lanlar\u0131 Veri Setiyle MongoDB Sorgu Prati\u011fi Rehberi - Kodlar\u0131n Gizemli D\u00fcnyas\u0131\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2026-05-12T06:04:24+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/gercek-is-ilanlari-veri-setiyle-mongodb-sorgu-pratigi-rehberi\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/gercek-is-ilanlari-veri-setiyle-mongodb-sorgu-pratigi-rehberi\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/gercek-is-ilanlari-veri-setiyle-mongodb-sorgu-pratigi-rehberi\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Ger\u00e7ek \u0130\u015f \u0130lanlar\u0131 Veri Setiyle MongoDB Sorgu Prati\u011fi Rehberi\"}]},{\"@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":"Ger\u00e7ek \u0130\u015f \u0130lanlar\u0131 Veri Setiyle MongoDB Sorgu Prati\u011fi Rehberi - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","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\/gercek-is-ilanlari-veri-setiyle-mongodb-sorgu-pratigi-rehberi\/","og_locale":"tr_TR","og_type":"article","og_title":"Ger\u00e7ek \u0130\u015f \u0130lanlar\u0131 Veri Setiyle MongoDB Sorgu Prati\u011fi Rehberi","og_description":"G\u00fcn\u00fcm\u00fcz\u00fcn rekabet\u00e7i i\u015f d\u00fcnyas\u0131nda, do\u011fru yetene\u011fi do\u011fru pozisyonla e\u015fle\u015ftirmek veya hayalinizdeki i\u015fi bulmak, b\u00fcy\u00fck veri y\u0131\u011f\u0131nlar\u0131n\u0131 etkili bir \u015fekilde analiz etmeyi gerektirir.","og_url":"https:\/\/fatihsoysal.com\/blog\/gercek-is-ilanlari-veri-setiyle-mongodb-sorgu-pratigi-rehberi\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2026-05-12T06:04:24+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"13 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/gercek-is-ilanlari-veri-setiyle-mongodb-sorgu-pratigi-rehberi\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/gercek-is-ilanlari-veri-setiyle-mongodb-sorgu-pratigi-rehberi\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"Ger\u00e7ek \u0130\u015f \u0130lanlar\u0131 Veri Setiyle MongoDB Sorgu Prati\u011fi Rehberi","datePublished":"2026-05-12T06:04:24+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/gercek-is-ilanlari-veri-setiyle-mongodb-sorgu-pratigi-rehberi\/"},"wordCount":2176,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"articleSection":["MongoDB"],"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/gercek-is-ilanlari-veri-setiyle-mongodb-sorgu-pratigi-rehberi\/#respond"]}],"copyrightYear":"2026","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/gercek-is-ilanlari-veri-setiyle-mongodb-sorgu-pratigi-rehberi\/","url":"https:\/\/fatihsoysal.com\/blog\/gercek-is-ilanlari-veri-setiyle-mongodb-sorgu-pratigi-rehberi\/","name":"Ger\u00e7ek \u0130\u015f \u0130lanlar\u0131 Veri Setiyle MongoDB Sorgu Prati\u011fi Rehberi - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2026-05-12T06:04:24+00:00","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/gercek-is-ilanlari-veri-setiyle-mongodb-sorgu-pratigi-rehberi\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/gercek-is-ilanlari-veri-setiyle-mongodb-sorgu-pratigi-rehberi\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/gercek-is-ilanlari-veri-setiyle-mongodb-sorgu-pratigi-rehberi\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Ger\u00e7ek \u0130\u015f \u0130lanlar\u0131 Veri Setiyle MongoDB Sorgu Prati\u011fi Rehberi"}]},{"@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\/41718","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=41718"}],"version-history":[{"count":0,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/41718\/revisions"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=41718"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=41718"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=41718"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}