{"id":4457,"date":"2023-09-28T08:00:42","date_gmt":"2023-09-28T08:00:42","guid":{"rendered":"https:\/\/sunucucozumleri.com\/?p=4457"},"modified":"2023-09-28T08:00:42","modified_gmt":"2023-09-28T08:00:42","slug":"mongodb-sorgulama-ve-filtreleme-islemleri","status":"publish","type":"post","link":"https:\/\/sunucucozumleri.com\/blog\/mongodb-sorgulama-ve-filtreleme-islemleri\/","title":{"rendered":"MongoDB Sorgulama ve Filtreleme \u0130\u015flemleri"},"content":{"rendered":"<p>MongoDB Nedir? Sorgulama ve Filtreleme \u0130\u015flemleri Nas\u0131l Yap\u0131l\u0131r? Veritaban\u0131 Ba\u011flant\u0131s\u0131 Nas\u0131l Kurulur? Basit Sorgulama \u0130\u015flemleri? Sorgu Operat\u00f6rleri ve Kullan\u0131m\u0131? Filtreleme \u0130\u015flemleri ve \u00d6rnekleri? Sorgu Sonu\u00e7lar\u0131n\u0131 S\u0131ralama ve S\u0131n\u0131rlama? Bu blog yaz\u0131s\u0131nda MongoDB&#8217;nin ne oldu\u011funu, sorgulama ve filtreleme i\u015flemlerinin nas\u0131l yap\u0131ld\u0131\u011f\u0131n\u0131, veritaban\u0131 ba\u011flant\u0131s\u0131n\u0131n nas\u0131l kuruldu\u011funu, basit sorgulama i\u015flemlerinin nas\u0131l ger\u00e7ekle\u015ftirildi\u011fini, sorgu operat\u00f6rlerinin ve kullan\u0131mlar\u0131n\u0131n neler oldu\u011funu, filtreleme i\u015flemlerinin ve \u00f6rneklerinin nas\u0131l ger\u00e7ekle\u015ftirildi\u011fini, sorgu sonu\u00e7lar\u0131n\u0131n nas\u0131l s\u0131raland\u0131\u011f\u0131 ve s\u0131n\u0131rl\u0131 say\u0131da al\u0131nd\u0131\u011f\u0131n\u0131 \u00f6\u011freneceksiniz. Bu yaz\u0131 size MongoDB&#8217;nin temellerini \u00f6\u011fretmek ve veritaban\u0131n\u0131z\u0131 etkin bir \u015fekilde y\u00f6netmenize yard\u0131mc\u0131 olmak i\u00e7in tasarlanm\u0131\u015ft\u0131r.<\/p>\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_82_2 counter-hierarchy ez-toc-counter ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Makale \u0130\u00e7eri\u011fi<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"\u0130\u00e7indekiler Tablosunu A\u00e7\/Kapat\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/sunucucozumleri.com\/blog\/mongodb-sorgulama-ve-filtreleme-islemleri\/#MongoDB_Nedir\" >MongoDB Nedir?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/sunucucozumleri.com\/blog\/mongodb-sorgulama-ve-filtreleme-islemleri\/#Sorgulama_ve_Filtreleme_Islemleri_Nasil_Yapilir\" >Sorgulama ve Filtreleme \u0130\u015flemleri Nas\u0131l Yap\u0131l\u0131r?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/sunucucozumleri.com\/blog\/mongodb-sorgulama-ve-filtreleme-islemleri\/#Veritabani_Baglantisi_Nasil_Kurulur\" >Veritaban\u0131 Ba\u011flant\u0131s\u0131 Nas\u0131l Kurulur?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/sunucucozumleri.com\/blog\/mongodb-sorgulama-ve-filtreleme-islemleri\/#Basit_Sorgulama_Islemleri\" >Basit Sorgulama \u0130\u015flemleri<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/sunucucozumleri.com\/blog\/mongodb-sorgulama-ve-filtreleme-islemleri\/#Sorgu_Operatorleri_ve_Kullanimi\" >Sorgu Operat\u00f6rleri ve Kullan\u0131m\u0131<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/sunucucozumleri.com\/blog\/mongodb-sorgulama-ve-filtreleme-islemleri\/#Filtreleme_Islemleri_ve_Ornekleri\" >Filtreleme \u0130\u015flemleri ve \u00d6rnekleri<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/sunucucozumleri.com\/blog\/mongodb-sorgulama-ve-filtreleme-islemleri\/#Sorgu_Sonuclarini_Siralama_ve_Sinirlama\" >Sorgu Sonu\u00e7lar\u0131n\u0131 S\u0131ralama ve S\u0131n\u0131rlama<\/a><\/li><\/ul><\/nav><\/div>\n<h2><span class=\"ez-toc-section\" id=\"MongoDB_Nedir\"><\/span>MongoDB Nedir?<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>MongoDB, a\u00e7\u0131k kaynakl\u0131 bir NoSQL veritaban\u0131 y\u00f6netim sistemidir. NoSQL, &#8220;Yap\u0131land\u0131r\u0131lmam\u0131\u015f Sorgulama Dili&#8221; anlam\u0131na gelir ve geleneksel ili\u015fkisel veritaban\u0131 y\u00f6netim sistemlerine alternatif bir yakla\u015f\u0131m sunar. MongoDB&#8217;nin temel \u00f6zelli\u011fi, veri tabanlar\u0131n\u0131 belge tabanl\u0131 bir yap\u0131da depolayabilmesidir. Bu, verilerin JSON veya BSON format\u0131nda oldu\u011fu, hiyerar\u015fik bir veri organizasyonuna sahip oldu\u011fu anlam\u0131na gelir.<\/p>\n<p>NoSQL veritabanlar\u0131, yap\u0131land\u0131r\u0131lm\u0131\u015f tablolara dayal\u0131 veri depolama yerine belge ve anahtar de\u011fer \u00e7iftleri \u015feklinde veri depolar. Bu, verilerin daha esnek bir \u015fekilde organize edilmesini ve analiz edilmesini sa\u011flar. MongoDB, bu t\u00fcr bir yap\u0131land\u0131rmay\u0131 destekleyen bir NoSQL veritaban\u0131d\u0131r ve kullan\u0131c\u0131lar\u0131n\u0131n al\u0131\u015f\u0131lm\u0131\u015f\u0131n d\u0131\u015f\u0131nda veri modelleri olu\u015fturmas\u0131na izin verir.<\/p>\n<p>MongoDB&#8217;nin \u00f6zelliklerinden biri de da\u011f\u0131t\u0131k bir veritaban\u0131 olabilmesidir. Bu, ayn\u0131 veritaban\u0131n\u0131n birden fazla <a href=\"https:\/\/sunucucozumleri.com\/blog\/frontpage\/\">sunucu<\/a> \u00fczerinde da\u011f\u0131t\u0131larak y\u00fcksek performans ve y\u00fcksek eri\u015filebilirlik sa\u011flamas\u0131n\u0131 m\u00fcmk\u00fcn k\u0131lar. Bu \u00f6zellik, b\u00fcy\u00fck veri tabanlar\u0131 ve i\u015f y\u00fckleriyle u\u011fra\u015fan \u015firketler i\u00e7in \u00f6nemlidir.<\/p>\n<p>Bunlar\u0131n yan\u0131 s\u0131ra, MongoDB&#8217;nin y\u00fcksek veri yazma h\u0131z\u0131, \u00f6l\u00e7eklenebilirlik ve geni\u015f ekosistemi gibi avantajlar\u0131 da bulunmaktad\u0131r. MongoDB&#8217;nin basit ve kullan\u0131\u015fl\u0131 bir kullan\u0131c\u0131 arabirimine sahip olmas\u0131 da, geli\u015ftiricilerin veritaban\u0131na kolayca eri\u015febilmesini ve sorgular\u0131n\u0131 y\u00f6netebilmesini sa\u011flamaktad\u0131r.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Sorgulama_ve_Filtreleme_Islemleri_Nasil_Yapilir\"><\/span>Sorgulama ve Filtreleme \u0130\u015flemleri Nas\u0131l Yap\u0131l\u0131r?<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Sorgulama ve filtreleme i\u015flemleri, veri tabanlar\u0131nda b\u00fcy\u00fck \u00f6neme sahip olan bir konudur. Bu i\u015flemler sayesinde istenilen verilerin al\u0131nmas\u0131 veya belirli kriterlere g\u00f6re verilerin filtrelenmesi m\u00fcmk\u00fcn hale gelir. MongoDB, geli\u015fmi\u015f sorgulama ve filtreleme yetenekleriyle kullan\u0131c\u0131lara kolayl\u0131k sa\u011flayan bir NoSQL veri taban\u0131d\u0131r.<\/p>\n<p>Sorgulama i\u015flemleri, veri taban\u0131nda bulunan belgelerin belirli kriterlere g\u00f6re se\u00e7ilmesini sa\u011flar. MongoDB&#8217;nin sa\u011flad\u0131\u011f\u0131 sorgu operat\u00f6rleri sayesinde kullan\u0131c\u0131lar, karma\u015f\u0131k sorgular\u0131 basit bir \u015fekilde ger\u00e7ekle\u015ftirebilirler. \u00d6rne\u011fin, <strong>$gt<\/strong> operat\u00f6r\u00fc ile belirli bir de\u011ferden b\u00fcy\u00fck olan verileri se\u00e7mek m\u00fcmk\u00fcnd\u00fcr. Ayn\u0131 \u015fekilde <strong>$lt<\/strong> operat\u00f6r\u00fc ile de belirli bir de\u011ferden k\u00fc\u00e7\u00fck olan verileri se\u00e7mek m\u00fcmk\u00fcnd\u00fcr.<\/p>\n<p>Filtreleme i\u015flemleri ise sorgu sonucunda elde edilen verilerin belirli bir kriter veya ko\u015fula g\u00f6re filtrelenmesini sa\u011flar. \u00d6rne\u011fin, bir veri taban\u0131nda bulunan m\u00fc\u015fteri bilgilerinin sadece &#8220;\u0130stanbul&#8221; \u015fehrinde ya\u015fayan m\u00fc\u015fterilerini filtrelemek istedi\u011fimizi d\u00fc\u015f\u00fcnelim. Bu durumda <strong>$match<\/strong> operat\u00f6r\u00fc kullan\u0131larak filtreleme i\u015flemi ger\u00e7ekle\u015ftirilebilir.<\/p>\n<p>Tabii ki sorgulama ve filtreleme i\u015flemleri sadece bu \u00f6rneklerle s\u0131n\u0131rl\u0131 de\u011fildir. MongoDB, bir\u00e7ok farkl\u0131 sorgu operat\u00f6r\u00fc ve filtreleme y\u00f6ntemi sunar. Kullan\u0131c\u0131lar, ihtiya\u00e7lar\u0131na g\u00f6re bu y\u00f6ntemleri kullanarak istedikleri sonu\u00e7lara ula\u015fabilirler.<\/p>\n<ul>\n<li>Sorgulama i\u015flemleri i\u00e7in baz\u0131 \u00f6nemli operat\u00f6rler: <strong>$gt<\/strong>, <strong>$lt<\/strong>, <strong>$in<\/strong>, <strong>$or<\/strong><\/li>\n<li>Filtreleme i\u015flemleri i\u00e7in baz\u0131 \u00f6nemli operat\u00f6rler: <strong>$match<\/strong>, <strong>$filter<\/strong>, <strong>$project<\/strong><\/li>\n<\/ul>\n<table>\n<tr>\n<th>Operat\u00f6r<\/th>\n<th>A\u00e7\u0131klama<\/th>\n<\/tr>\n<tr>\n<td><strong>$gt<\/strong><\/td>\n<td>Belirli bir de\u011ferden b\u00fcy\u00fck olan verileri se\u00e7er.<\/td>\n<\/tr>\n<tr>\n<td><strong>$lt<\/strong><\/td>\n<td>Belirli bir de\u011ferden k\u00fc\u00e7\u00fck olan verileri se\u00e7er.<\/td>\n<\/tr>\n<tr>\n<td><strong>$in<\/strong><\/td>\n<td>Belirli bir listedeki verileri se\u00e7er.<\/td>\n<\/tr>\n<tr>\n<td><strong>$or<\/strong><\/td>\n<td>Verileri birden fazla ko\u015fula g\u00f6re se\u00e7er.<\/td>\n<\/tr>\n<\/table>\n<h2><span class=\"ez-toc-section\" id=\"Veritabani_Baglantisi_Nasil_Kurulur\"><\/span>Veritaban\u0131 Ba\u011flant\u0131s\u0131 Nas\u0131l Kurulur?<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Veritaban\u0131 ba\u011flant\u0131s\u0131, web siteleri, uygulamalar ve di\u011fer \u00e7e\u015fitli yaz\u0131l\u0131mlar i\u00e7in vazge\u00e7ilmez bir gerekliliktir. Verilerin g\u00fcvenli bir \u015fekilde depoland\u0131\u011f\u0131 ve eri\u015fildi\u011fi bu veritaban\u0131 sistemlerinin kurulmas\u0131 olduk\u00e7a \u00f6nemlidir. Bu yaz\u0131da, veritaban\u0131 ba\u011flant\u0131s\u0131 nas\u0131l kurulur, nelere dikkat edilmelidir ve hangi ad\u0131mlar izlenmelidir gibi konular\u0131 ele alaca\u011f\u0131z.<\/p>\n<p>\u0130lk ad\u0131m olarak, kullanaca\u011f\u0131n\u0131z veritaban\u0131 sistemini belirlemelisiniz. Veritaban\u0131 \u00e7e\u015fitleri aras\u0131nda Oracle, MySQL, Microsoft SQL Server ve MongoDB gibi pop\u00fcler se\u00e7enekler bulunmaktad\u0131r. Hangi veritaban\u0131 sisteminin ihtiya\u00e7lar\u0131n\u0131za en uygun oldu\u011funu de\u011ferlendirmeli ve se\u00e7melisiniz.<\/p>\n<p>Veritaban\u0131 sistemi se\u00e7ildikten sonra, ba\u011flant\u0131 yap\u0131lacak olan sunucu bilgileri temin edilmelidir. Sunucu ad\u0131, kullan\u0131c\u0131 ad\u0131, \u015fifre gibi bilgileri do\u011fru \u015fekilde belirlemek \u00f6nemlidir. Bu bilgileri elde ettikten sonra, belirledi\u011finiz veritaban\u0131 sistemine uygun olan s\u00fcr\u00fcc\u00fcy\u00fc (driver) indirmeli ve kurulumunu ger\u00e7ekle\u015ftirmelisiniz.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Basit_Sorgulama_Islemleri\"><\/span>Basit Sorgulama \u0130\u015flemleri<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p><strong>Basit Sorgulama \u0130\u015flemleri:<\/strong><\/p>\n<p>Veritaban\u0131 i\u015flemlerinde sorgulama, bilgiye eri\u015fmek i\u00e7in kullan\u0131lan en temel y\u00f6ntemlerden biridir. Basit sorgulama i\u015flemleri, veritaban\u0131ndaki belirli bilgileri bulmak veya belirli \u015fartlar\u0131 kar\u015f\u0131layan verileri se\u00e7mek i\u00e7in kullan\u0131l\u0131r.<\/p>\n<p>Bir sorgu olu\u015fturmadan \u00f6nce, \u00f6ncelikle hangi veritaban\u0131nda \u00e7al\u0131\u015faca\u011f\u0131m\u0131z\u0131 belirlemeliyiz. MongoDB&#8217;de bir veritaban\u0131na ba\u011flanmak i\u00e7in <strong>db.connect()<\/strong> komutunu kullanabiliriz. Bu komut, veritaban\u0131na ba\u015far\u0131l\u0131 bir \u015fekilde ba\u011fland\u0131ysak veritaban\u0131 nesnesini d\u00f6nd\u00fcr\u00fcr.<\/p>\n<p>Veritaban\u0131 nesnesine ba\u011fland\u0131ktan sonra s\u0131radaki ad\u0131m, sorguyu olu\u015fturmak ve sonu\u00e7lar\u0131 filtrelemektir. Basit sorgulama i\u015flemleri yapmak i\u00e7in MongoDB&#8217;nin sa\u011flad\u0131\u011f\u0131 baz\u0131 komutlar\u0131 kullanabiliriz. \u00d6rne\u011fin, <strong>db.collection.find()<\/strong> komutunu kullanarak belirli bir koleksiyondaki t\u00fcm belgeleri se\u00e7ebiliriz. Bu komutu kullan\u0131rken filtreleme i\u015flemleri i\u00e7in de baz\u0131 operat\u00f6rler kullanabiliriz.<\/p>\n<table>\n<tr>\n<th>Operat\u00f6r<\/th>\n<th>A\u00e7\u0131klama<\/th>\n<th>\u00d6rnek Kullan\u0131m<\/th>\n<\/tr>\n<tr>\n<td>$eq<\/td>\n<td>E\u015fittir<\/td>\n<td>{ alan: { $eq: de\u011fer } }<\/td>\n<\/tr>\n<tr>\n<td>$ne<\/td>\n<td>E\u015fit de\u011fil<\/td>\n<td>{ alan: { $ne: de\u011fer } }<\/td>\n<\/tr>\n<tr>\n<td>$gt<\/td>\n<td>B\u00fcy\u00fckt\u00fcr<\/td>\n<td>{ alan: { $gt: de\u011fer } }<\/td>\n<\/tr>\n<\/table>\n<p>Bu tabloda sadece baz\u0131 operat\u00f6rlerin \u00f6rneklerini g\u00f6sterdik, ancak MongoDB&#8217;de bir\u00e7ok farkl\u0131 operat\u00f6r bulunmaktad\u0131r. Bu operat\u00f6rleri kullanarak sorgular\u0131m\u0131z\u0131 daha da geli\u015ftirebilir ve istedi\u011fimiz sonu\u00e7lar\u0131 elde edebiliriz.<\/p>\n<p>Bunlar, MongoDB&#8217;de basit sorgulama i\u015flemlerinin nas\u0131l yap\u0131ld\u0131\u011f\u0131na dair bir genel bak\u0131\u015ft\u0131r. MongoDB&#8217;nin sa\u011flad\u0131\u011f\u0131 di\u011fer sorgu operat\u00f6rlerini ve kullan\u0131mlar\u0131n\u0131 \u00f6\u011frenmek i\u00e7in MongoDB&#8217;nin resmi dok\u00fcmantasyonunu inceleyebilirsiniz.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Sorgu_Operatorleri_ve_Kullanimi\"><\/span>Sorgu Operat\u00f6rleri ve Kullan\u0131m\u0131<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Sorgu Operat\u00f6rleri, veritaban\u0131nda yap\u0131lan sorgulamalarda kullan\u0131lan \u00f6zel i\u015faretlerdir. Bu operat\u00f6rler, sorgulama i\u015flemlerini daha esnek ve detayl\u0131 bir \u015fekilde ger\u00e7ekle\u015ftirmemizi sa\u011flar. MongoDB, \u00e7e\u015fitli sorgu operat\u00f6rlerini destekler ve kullan\u0131c\u0131lara geni\u015f bir i\u015flevsellik sunar.<\/p>\n<p>Bir\u00e7ok farkl\u0131 sorgu operat\u00f6r\u00fc vard\u0131r ve her biri farkl\u0131 bir amaca hizmet eder. \u0130\u015fte baz\u0131 sorgu operat\u00f6rleri ve kullan\u0131mlar\u0131:<\/p>\n<ul>\n<li><strong>$eq:<\/strong> Belirli bir de\u011fere e\u015fit olan belgeleri d\u00f6nd\u00fcr\u00fcr.<\/li>\n<li><strong>$ne:<\/strong> Belirli bir de\u011fere e\u015fit olmayan belgeleri d\u00f6nd\u00fcr\u00fcr.<\/li>\n<li><strong>$gt:<\/strong> Belirli bir de\u011ferden b\u00fcy\u00fck olan belgeleri d\u00f6nd\u00fcr\u00fcr.<\/li>\n<\/ul>\n<table>\n<tr>\n<th>Sorgu Operat\u00f6r\u00fc<\/th>\n<th>A\u00e7\u0131klama<\/th>\n<\/tr>\n<tr>\n<td><strong>$in<\/strong><\/td>\n<td>Birden fazla de\u011fere e\u015fit olan belgeleri d\u00f6nd\u00fcr\u00fcr.<\/td>\n<\/tr>\n<tr>\n<td><strong>$lt<\/strong><\/td>\n<td>Belirli bir de\u011ferden k\u00fc\u00e7\u00fck olan belgeleri d\u00f6nd\u00fcr\u00fcr.<\/td>\n<\/tr>\n<tr>\n<td><strong>$regex<\/strong><\/td>\n<td>Belirli bir desene uyan belgeleri d\u00f6nd\u00fcr\u00fcr.<\/td>\n<\/tr>\n<\/table>\n<p>Sorgu operat\u00f6rlerini kullanarak g\u00fc\u00e7l\u00fc sorgulamalar yapabiliriz. \u00d6rne\u011fin, bir koleksiyondaki belgeleri belirli bir tarihten sonra veya belirli bir fiyat aral\u0131\u011f\u0131nda olan belgeleri bulmak gibi i\u015flemleri ger\u00e7ekle\u015ftirebiliriz. Sorgu operat\u00f6rleri, MongoDB&#8217;nin veritaban\u0131 i\u015flemlerini daha etkili hale getirmemize yard\u0131mc\u0131 olur.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Filtreleme_Islemleri_ve_Ornekleri\"><\/span>Filtreleme \u0130\u015flemleri ve \u00d6rnekleri<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Filtreleme i\u015flemleri veritaban\u0131 sorgulama i\u015flemlerinin temel bir par\u00e7as\u0131d\u0131r. Bu i\u015flemler sayesinde veritaban\u0131nda saklanan verileri belirli kriterlere g\u00f6re filtreleyerek istedi\u011fimiz sonu\u00e7lar\u0131 elde edebiliriz. Filtreleme i\u015flemleri, hem b\u00fcy\u00fck veri k\u00fcmelerinde hem de k\u00fc\u00e7\u00fck veri tabanlar\u0131nda veriye eri\u015fimi kolayla\u015ft\u0131rmak i\u00e7in kullan\u0131l\u0131r. Bu yaz\u0131da, filtreleme i\u015flemlerinin nas\u0131l yap\u0131ld\u0131\u011f\u0131n\u0131 ve baz\u0131 \u00f6rnekleri ele alaca\u011f\u0131z.<\/p>\n<p>Bir veritaban\u0131nda filtreleme i\u015flemi yaparken, verileri belirli bir ko\u015fula g\u00f6re sorgulamam\u0131z gerekmektedir. Filtreleme i\u015flemini ger\u00e7ekle\u015ftirirken, kullanabilece\u011fimiz \u00e7e\u015fitli sorgu operat\u00f6rleri bulunmaktad\u0131r. Bu operat\u00f6rler, sorgulama i\u015flemini daha esnek hale getirir ve istedi\u011fimiz sonu\u00e7lar\u0131 elde etmemizi sa\u011flar.<\/p>\n<p>Bir \u00f6rnek veritaban\u0131nda, &#8220;products&#8221; ad\u0131nda bir koleksiyon oldu\u011funu ve bu koleksiyonda &#8220;name&#8221;, &#8220;price&#8221; ve &#8220;category&#8221; gibi alanlar\u0131n bulundu\u011funu varsayal\u0131m. E\u011fer sadece belli bir kategorideki \u00fcr\u00fcnleri filtrelemek istiyorsak, \u015fu sorguyu kullanabiliriz: <\/p>\n<table>\n<tr>\n<th>Operat\u00f6r<\/th>\n<th>A\u00e7\u0131klama<\/th>\n<th>\u00d6rnek Kullan\u0131m<\/th>\n<\/tr>\n<tr>\n<td>$eq<\/td>\n<td>E\u015fittir<\/td>\n<td>{ category: { $eq: &#8220;Electronics&#8221; } }<\/td>\n<\/tr>\n<tr>\n<td>$ne<\/td>\n<td>E\u015fit de\u011fil<\/td>\n<td>{ price: { $ne: 0 } }<\/td>\n<\/tr>\n<tr>\n<td>$lt<\/td>\n<td>K\u00fc\u00e7\u00fck<\/td>\n<td>{ price: { $lt: 100 } }<\/td>\n<\/tr>\n<tr>\n<td>$gt<\/td>\n<td>B\u00fcy\u00fck<\/td>\n<td>{ price: { $gt: 500 } }<\/td>\n<\/tr>\n<tr>\n<td>$in<\/td>\n<td>Bir listede bulunma<\/td>\n<td>{ category: { $in: [&#8220;Electronics&#8221;, &#8220;Clothing&#8221;] } }<\/td>\n<\/tr>\n<tr>\n<td>$regex<\/td>\n<td>Regex e\u015fle\u015fmesi<\/td>\n<td>{ name: { $regex: &#8220;.*phone.*&#8221; } }<\/td>\n<\/tr>\n<\/table>\n<p>Bu \u00f6rnekte, &#8220;category&#8221; alan\u0131 &#8220;Electronics&#8221; olan \u00fcr\u00fcnleri filtrelemek i\u00e7in $eq operat\u00f6r\u00fcn\u00fc kulland\u0131k. E\u011fer fiyat\u0131 0 olmayan \u00fcr\u00fcnleri filtrelemek isteseydik $ne operat\u00f6r\u00fcn\u00fc kullanabilirdik. Ayn\u0131 \u015fekilde, fiyat\u0131 belirli bir de\u011ferin alt\u0131nda veya \u00fcst\u00fcnde olan \u00fcr\u00fcnleri filtrelemek i\u00e7in $lt ve $gt operat\u00f6rlerini kullanabiliriz. $in operat\u00f6r\u00fc ile belirli bir kategori listesindeki \u00fcr\u00fcnleri filtreleyebilir ve $regex operat\u00f6r\u00fc ile belirli bir kelimeyi i\u00e7eren \u00fcr\u00fcnleri filtreleyebiliriz.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Sorgu_Sonuclarini_Siralama_ve_Sinirlama\"><\/span>Sorgu Sonu\u00e7lar\u0131n\u0131 S\u0131ralama ve S\u0131n\u0131rlama<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Veritaban\u0131 sorgular\u0131yla \u00e7al\u0131\u015f\u0131rken, sorgu sonu\u00e7lar\u0131n\u0131 s\u0131ralamak ve s\u0131n\u0131rlamak s\u0131kl\u0131kla kullan\u0131lan i\u015flemlerdir. Bu i\u015flemler sayesinde, veritaban\u0131 \u00fczerindeki verileri belirli bir d\u00fczene g\u00f6re s\u0131ralayabilir ve sadece istenen say\u0131da sonu\u00e7 alabilirsiniz.<\/p>\n<p><strong>Sorgu Sonu\u00e7lar\u0131n\u0131 S\u0131ralama<\/strong><\/p>\n<p>Veritaban\u0131ndan \u00e7ekilen veriler genellikle bir d\u00fczene g\u00f6re s\u0131ralanm\u0131\u015f \u015fekilde istenir. MongoDB&#8217;de sorgu sonu\u00e7lar\u0131n\u0131 s\u0131ralamak i\u00e7in <strong>sort()<\/strong> fonksiyonu kullan\u0131l\u0131r. Bu fonksiyon, sorgu sonucundaki belgeleri belirli bir kritere g\u00f6re s\u0131ralar. \u00d6rne\u011fin, bir koleksiyondan m\u00fc\u015fterilerin ya\u015flar\u0131na g\u00f6re s\u0131ralanm\u0131\u015f bir sonu\u00e7 almak isterseniz, a\u015fa\u011f\u0131daki sorguyu kullanabilirsiniz:<\/p>\n<p>db.musteriler.find().sort({ yas: 1 }).pretty()<\/p>\n<p>Bu sorgu, <strong>musteriler<\/strong> koleksiyonundaki belgeleri <strong>yas<\/strong> alan\u0131na g\u00f6re k\u00fc\u00e7\u00fckten b\u00fcy\u00fc\u011fe do\u011fru s\u0131ralar. S\u0131ralama istenilen d\u00fczende yap\u0131lmas\u0131 i\u00e7in <strong>1<\/strong> kullan\u0131l\u0131rken, b\u00fcy\u00fckten k\u00fc\u00e7\u00fc\u011fe s\u0131ralama yapmak i\u00e7in <strong>-1<\/strong> kullan\u0131l\u0131r.<\/p>\n<p><strong>Sorgu Sonu\u00e7lar\u0131n\u0131 S\u0131n\u0131rlama<\/strong><\/p>\n<p>Baz\u0131 durumlarda, veritaban\u0131ndan t\u00fcm sonu\u00e7lar\u0131 \u00e7ekmek yerine sadece belirli bir say\u0131da sonu\u00e7 almak isteyebilirsiniz. Bunun i\u00e7in MongoDB&#8217;de <strong>limit()<\/strong> fonksiyonu kullan\u0131l\u0131r. Bu fonksiyon, sorgu sonucunda d\u00f6nen belge say\u0131s\u0131n\u0131 belirler. \u00d6rne\u011fin, sadece ilk 5 m\u00fc\u015fteriyi d\u00f6nd\u00fcrmek isterseniz a\u015fa\u011f\u0131daki sorguyu kullanabilirsiniz:<\/p>\n<p>db.musteriler.find().limit(5).pretty()<\/p>\n<p>Bu sorgu, <strong>musteriler<\/strong> koleksiyonundaki t\u00fcm belgeleri almak yerine sadece ilk 5 belgeyi d\u00f6nd\u00fcr\u00fcr.<\/p>\n<p>Veritaban\u0131 sorgular\u0131nda sorgu sonu\u00e7lar\u0131n\u0131 s\u0131ralama ve s\u0131n\u0131rlama i\u015flemleri olduk\u00e7a kullan\u0131\u015fl\u0131d\u0131r. Bu i\u015flemler sayesinde istedi\u011finiz verileri istedi\u011finiz d\u00fczende ve say\u0131da alabilirsiniz.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>MongoDB Nedir? Sorgulama ve Filtreleme \u0130\u015flemleri Nas\u0131l Yap\u0131l\u0131r? Veritaban\u0131 Ba\u011flant\u0131s\u0131 Nas\u0131l Kurulur? Basit Sorgulama \u0130\u015flemleri? Sorgu Operat\u00f6rleri ve Kullan\u0131m\u0131? Filtreleme \u0130\u015flemleri ve \u00d6rnekleri? Sorgu Sonu\u00e7lar\u0131n\u0131 S\u0131ralama ve S\u0131n\u0131rlama? Bu blog yaz\u0131s\u0131nda MongoDB&#8217;nin ne oldu\u011funu, sorgulama ve filtreleme i\u015flemlerinin nas\u0131l yap\u0131ld\u0131\u011f\u0131n\u0131, veritaban\u0131 ba\u011flant\u0131s\u0131n\u0131n nas\u0131l kuruldu\u011funu, basit sorgulama i\u015flemlerinin nas\u0131l ger\u00e7ekle\u015ftirildi\u011fini, sorgu operat\u00f6rlerinin ve kullan\u0131mlar\u0131n\u0131n neler oldu\u011funu, &hellip;<\/p>\n","protected":false},"author":6,"featured_media":4456,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[35],"tags":[],"class_list":["post-4457","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-programlama"],"acf":[],"_links":{"self":[{"href":"https:\/\/sunucucozumleri.com\/blog\/wp-json\/wp\/v2\/posts\/4457","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/sunucucozumleri.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/sunucucozumleri.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/sunucucozumleri.com\/blog\/wp-json\/wp\/v2\/users\/6"}],"replies":[{"embeddable":true,"href":"https:\/\/sunucucozumleri.com\/blog\/wp-json\/wp\/v2\/comments?post=4457"}],"version-history":[{"count":0,"href":"https:\/\/sunucucozumleri.com\/blog\/wp-json\/wp\/v2\/posts\/4457\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/sunucucozumleri.com\/blog\/wp-json\/wp\/v2\/media\/4456"}],"wp:attachment":[{"href":"https:\/\/sunucucozumleri.com\/blog\/wp-json\/wp\/v2\/media?parent=4457"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/sunucucozumleri.com\/blog\/wp-json\/wp\/v2\/categories?post=4457"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/sunucucozumleri.com\/blog\/wp-json\/wp\/v2\/tags?post=4457"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}