GraphQL ve MongoDB Kullanarak Veritabanı Sorgulama

GraphQL ve MongoDB Kullanarak Veritabanı Sorgulama

GraphQL ve MongoDB kullanarak veritabanı sorgulama, veri yönetimi için güçlü bir yöntemdir Bu yöntem sayesinde, verilerinizi daha organize hale getirebilir, daha hızlı ve daha verimli bir şekilde sorgulayabilirsiniz Bu makalede, GraphQL ve MongoDB'yi kullanarak veritabanı sorgulamayı öğreneceksiniz Hemen okumaya başlayın ve veri yönetimi sorunlarına çözüm bulun!

GraphQL ve MongoDB Kullanarak Veritabanı Sorgulama

Bu makalede, GraphQL ve MongoDB teknolojilerini kullanarak veritabanı sorgulama işlemlerinin nasıl gerçekleştirileceği anlatılacaktır. GraphQL, veritabanından veri almak için kullanılan bir sorgulama dilidir. MongoDB ise belge tabanlı bir veritabanı olup, verileri JSON benzeri bir formatta saklar. Bu iki teknoloji birleştirilerek, kolayca veritabanı sorgulama işlemleri gerçekleştirilebilir.

Öncelikle MongoDB kurulumu gerçekleştirilmeli. Kurulum için resmi websitesinden indirme işlemi gerçekleştirilmeli ve işletim sistemi türüne göre gerekli adımlar takip edilmelidir. Ardından, GraphQL kurulumu gerçekleştirmeli. NPM veya Yarn paket yöneticileri kullanılarak kurulum gerçekleştirilebilir.

GraphQL ve MongoDB entegrasyonu için, Apollo Server ve MongoDB sürücüsü kullanılabilir. Temel GraphQL sorguları arasında query, mutation ve subscription yer alır. Query, veritabanından veri almak için kullanılan bir GraphQL sorgu tipidir. Mutation, veritabanındaki verileri değiştirmek için kullanılan bir GraphQL sorgusu türüdür. Subscription ise belirli bir olay meydana geldiğinde veritabanından yeni veri almak için kullanılan bir GraphQL sorgusu türüdür.

Örnek GraphQL sorguları arasında kullanıcı ekleme, kullanıcı güncelleme ve kullanıcı silme gibi işlemler yer almaktadır. Bu işlemler, GraphQL ve MongoDB kullanılarak kolayca gerçekleştirilebilir.

GraphQL ve MongoDB teknolojileri sayesinde veritabanı sorgulama işlemleri oldukça hızlı ve kolay bir şekilde gerçekleştirilebilmektedir. Bu sayede, veritabanına erişim ve verilerin çekilmesi süreçleri daha da basitleştirilmektedir.


GraphQL Nedir?

GraphQL, son yıllarda popüler hale gelen bir sorgulama dilidir. Temelde veritabanından veri almak için kullanılan GraphQL, REST API'lerine alternatif bir çözüm olarak görülmektedir. REST API'lerinde bir end point'ten veri alırken tüm verilere ulaşılmakta ve bazen bu gereksiz veri trafiğine neden olmaktadır. Ancak GraphQL, sadece ihtiyaç duyulan verileri alabilecek şekilde kullanılabilir.

GraphQL sorguları, istemci tarafından yapılan sorgulara cevap vermek için sunucu tarafında bir veritabanı sorgulamasına dönüştürülür. Bu sorgular, karmaşık veri yapılarından veya birden fazla kaynaktan veri alınmasına izin verir. Ayrıca REST API'lere göre daha hızlı ve verimli bir performans sergiler.


MongoDB Nedir?

MongoDB, belge tabanlı bir veritabanıdır ve verileri JSON benzeri bir formatta saklar. Bu özellik, verilerin çoğu zaman JSON formatında olduğu modern web uygulamaları için ideal bir çözüm sunar. Bu nedenle, MongoDB son yıllarda popülerliğini artırmıştır ve özellikle Node.js gibi JavaScript tabanlı teknolojilerle birlikte kullanılmaktadır.

MongoDB, tablo veya sütunlar gibi geleneksel SQL veritabanlarından farklı olarak, dokümanlardan oluşan bir yapısı vardır. Bu dokümanlar, birbirleriyle ilişkili olabilir ve çok çeşitli veri tiplerini destekler. MongoDB ayrıca, ölçeklenebilir olan ve yüksek kullanılabilirliğe sahip olan bir veritabanıdır. Bu özellikleri, MongoDB'yi büyük ölçekli web uygulamaları için uygun hale getirir.

JSON formatında saklanan veriler, MongoDB'nin kullanımını basitleştirir ve veri işleme sürecinde hızlıdır. Ayrıca, MongoDB, yedekleme, kopyalama ve geri yükleme işlemleri için de kolay bir arabirim sunar. Bu nedenle, MongoDB, modern web uygulamaları için ideal bir veritabanı seçeneği olarak görülmektedir.


MongoDB Kurulumu

MongoDB, belge tabanlı bir veritabanıdır ve kullanıcıların verileri JSON benzeri bir formatta saklamasına olanak sağlar. MongoDB'yi kullanabilmek için öncelikle MongoDB resmi websitesinden indirmeniz gerekiyor. İndirme işlemi tamamlandıktan sonra kurulum adımlarına geçebilirsiniz.

MongoDB'nin Windows işletim sistemi için kurulumu oldukça basittir. Kurulum dosyasını indirdikten sonra, kurulum sihirbazını çalıştırmanız yeterlidir. Kurulum adımlarını takip ederek MongoDB'yi kolayca kurabilir ve kullanmaya başlayabilirsiniz.

Linux işletim sistemi için MongoDB kurulumu da oldukça basittir, ancak farklı adımlar gerektirir. Kurulum için öncelikle MongoDB'nin Linux için uygun sürümünü indirmeniz gerekiyor. Daha sonra, terminal üzerinden kurulum adımlarını takip ederek MongoDB'yi kurabilirsiniz.


Windows İşletim Sistemi İçin MongoDB Kurulumu

Windows işletim sistemi için MongoDB kurulumu oldukça kolay bir şekilde gerçekleştirilebilir. MongoDB'nin resmi websitesinden indirdiğiniz .msi kurulum dosyasını çalıştırarak kurulumu başlatabilirsiniz. Kurulum sırasında gerekli olan adımların hepsi ekranda size gösterilecektir.

Kurulumu başlatmak için, indirdiğiniz .msi dosyasını çift tıklayarak çalıştırın. Karşınıza gelen pencerede "Next" butonuna tıklayarak kurulumu başlatabilirsiniz.

1. Kurulumu başlatmak için, "Next" butonuna tıklayın.
2. Lisans sözleşmesini kabul etmek için "I accept the terms in the License Agreement" seçeneğini işaretleyin ve "Next" butonuna tıklayın.
3. Yükleme alanını seçmek için "Custom" seçeneğini seçin ve "Next" butonuna tıklayın.
4. Komponentleri seçmek için "MongoDB Server" seçeneğini seçin ve "Next" butonuna tıklayın.
5. Yükleme dizinini seçmek için "Browse" butonuna tıklayarak yükleme dizinini seçin ve "Next" butonuna tıklayın.
6. Kurulum özetini görüntülemek için "Install" butonuna tıklayın.
7. Kurulumun tamamlanması için "Finish" butonuna tıklayın.

Bu adımları takip ederek Windows işletim sistemi üzerinde MongoDB kurulumunu gerçekleştirebilirsiniz. Kurulum tamamlandıktan sonra MongoDB'yi kullanmaya başlayabilirsiniz.


Linux İşletim Sistemi İçin MongoDB Kurulumu

Linux işletim sistemi için MongoDB kurulumu, diğer işletim sistemleri için yapılan kurulumlardan farklı adımları kapsar.

İlk olarak, MongoDB deposunu sisteminize eklemelisiniz. Bunun için, aşağıdaki komutu terminal penceresinde çalıştırın:

Dağıtım Komut
Debian/Ubuntu echo "deb [ arch=amd64 ] https://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/4.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.4.list
Fedora sudo tee /etc/yum.repos.d/mongodb-org-4.4.repo <<-END
[mongodb-org-4.4]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/8/mongodb-org/4.4/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-4.4.asc
END

Sonrasında, MongoDB'yi kurmak için aşağıdaki komutu çalıştırın:

  • Debian/Ubuntu: sudo apt-get install mongodb-org
  • Fedora: sudo dnf install mongodb-org

Kurulum tamamlandığında, MongoDB servisini başlatmak ve sistemin yeniden başlatılmasında aktif olmasını sağlamak için aşağıdaki komutları kullanın:

  • Debian/Ubuntu: sudo systemctl enable mongod.service ve sudo systemctl start mongod.service
  • Fedora: sudo systemctl enable mongod.service ve sudo systemctl start mongod.service

Linux için MongoDB kurulumu tamamlandığında, diğer işletim sistemleri için yaptığınız gibi Node.js ve GraphQL kurulumlarınızı yapabilir ve MongoDB'yi GraphQL ile entegre ederek veritabanı sorgularınızı yapabilirsiniz.


GraphQL Kurulumu

GraphQL kullanarak veritabanı sorgulamaları yapmak için öncelikle GraphQL'in kurulumunu gerçekleştirmeniz gerekiyor. GraphQL kurulumu oldukça kolaydır ve NPM veya Yarn paket yöneticileri kullanarak gerçekleştirilebilir.

GraphQL kurulumunu gerçekleştirmek için aşağıdaki adımları takip edebilirsiniz:

NPM Kullanarak Kurulum: Yarn Kullanarak Kurulum:
  • Terminal'i açın
  • npm install graphql komutunu çalıştırın
  • Terminal'i açın
  • yarn add graphql komutunu çalıştırın

GraphQL'in paket yöneticileri yardımıyla kurulumu bu kadar basit. Bu adımları takip ederek GraphQL kurulumunu tamamlayabilirsiniz. İleriye dönük olarak, MongoDB ile entegrasyonu gerçekleştirerek veritabanı sorgulamaları yapabilirsiniz.


GraphQL ve MongoDB Nasıl Kullanılır?

GraphQL ve MongoDB, veritabanı sorgulamak için bir arada kullanıldığında oldukça etkilidir. Ancak, GraphQL ve MongoDB sorgularının farklı olduğunu unutmamak gerekir. Bu nedenle, GraphQL sorgularını MongoDB sorgularına dönüştürmek gereklidir.

Bunun için, her GraphQL sorgusuna karşılık gelen ve MongoDB tarafından desteklenen bir sorgu yazılmalıdır. Örneğin, GraphQL'de bir kullanıcının adını ve soyadını sormak için şu sorgu kullanılır:

{  user {    firstName    lastName  }}

Ancak, bu sorguyu MongoDB'de kullanmak mümkün değildir çünkü MongoDB, verileri belge tabanlı olarak saklar. Bu nedenle, bu sorgunun MongoDB sorgusuna çevrilmesi gerekiyor.

Bu şekilde, MongoDB sorgusu kullanılarak veritabanından istenen veriler alınabilir. Ayrıca, GraphQL sorguları ile MongoDB sorguları arasındaki farklılıkları anlamak, veritabanı sorgulamalarını daha verimli hale getirmek için oldukça önemlidir.


GraphQL ve MongoDB Entegrasyonu

GraphQL ve MongoDB entegrasyonu, Apollo Server ve MongoDB sürücüsü kullanılarak yapılabilir. Apollo Server, GraphQL sorgularını aldığı zaman, bu sorguları MongoDB sorgularına çevirerek veritabanından veri alınmasını sağlar. MongoDB sürücüsü ise, MongoDB ile iletişim kurmayı kolaylaştırır.

Bu entegrasyona başlamadan önce, Apollo Server ve MongoDB sürücüsünü yüklemeniz gerekiyor. Apollo Server'ı yüklemek için, NPM veya Yarn paket yöneticilerini kullanabilirsiniz. MongoDB sürücüsü ise, MongoDB websitesinden indirilebilir.

Entegrasyon işlemi, bir schema ve bir resolver fonksiyonu oluşturarak gerçekleştirilebilir. Schema, GraphQL tarafından kullanılacak sınıfları ve alanları tanımlar. Resolver fonksiyonu ise, GraphQL sorgularını MongoDB sorgularına dönüştürür ve veritabanından veri almayı sağlar.

GraphQL ve MongoDB entegrasyonu yapmak, herhangi bir programlama dili ile yapılabilir. Bu entegrasyonu yapmak için, Node.js veya Python gibi programlama dilleri kullanabilirsiniz. Bu işlem, web uygulamaları ve mobil uygulamalar gibi birçok farklı yerde kullanılabilir.


Temel GraphQL Sorguları

GraphQL, modern bir API sorgulama dili olarak bilinir ve veritabanından veri almak için query, mutation ve subscription sorgularını kullanır. Temel GraphQL sorguları arasında bu üç farklı sorgu türü yer alır.

Query, veritabanından veri almak için kullanılan en temel GraphQL sorgu türüdür. Veriler, belirli bir şekilde filtrelenip sıralanarak alınabilir. Mutation, veritabanındaki verileri değiştirmek için kullanılan bir GraphQL sorgusudur. Bu sorgu türü, verileri ekleyebilir, güncelleyebilir ve silebilir. Subscription ise, belirli bir olay meydana geldiğinde veritabanından yeni veri almak için kullanılan bir GraphQL sorgusu türüdür.

GraphQL sorguları, komutların kullanım örüntüleri özelleştirilebilir, bu nedenle herhangi bir GraphQL sorgusu sizin tarafınızdan yaratılmış özelleştirilmiş bir API tarafından sürdürülmek için kullanılabilir. Bu, önemli bir avantajdır çünkü istekler daha küçük ve özelleştirilmiş hale getirilebilir, bu da sunucu verimliliğini arttırır ve ağ trafiğini en aza indirir.


Query

Query, GraphQL ile veritabanından veri almak için kullanılan bir sorgu türüdür. Query sorguları, REST API'lerdeki GET isteklerine benzerdir. Ancak, GraphQL ile yapılan sorgulamalarda, sadece istenen veriler alınır ve gereksiz veri trafiği önlenir.

Query sorguları, sorgu alıcısına belirli bir veri yapısı döndürür. Örneğin, bir kullanıcının adı, soyadı, e-posta adresi gibi bilgileri ya da bir ürünün adı, fiyatı gibi bilgileri almak için bir query sorgusu yazılabilir. Bu sorgular, belirli bir şema yapısına göre yazılır ve şemanın tanımladığı alanlara göre veri alımı yapılır.

Örnek olarak, bir GraphQL Query sorgusu olan "getUserById" şöyle yazılabilir:

Query Sorgusu Açıklama
query getUserById { user(id: "123") { name email posts { title content } } } Bu sorgu, id'si 123 olan bir kullanıcının isim, e-posta adresi ve yazılarına ait başlıklar ve içerikleri içeren verileri döndürür.

Query sorguları, işlevselliği açısından oldukça esnektir ve birden fazla parametre alabilir. Bu sayede, istenen veriler daha detaylı ve özelleştirilmiş bir şekilde alınabilir.


Mutation

Mutation, GraphQL'in en önemli sorgu türlerinden biridir. Bu sorgu türü, veritabanındaki verileri değiştirmek için kullanılır. Bir örnek vermek gerekirse, bir kullanıcının adını veya adresini güncellemek için kullanılabilir.

Mutation sorguları, GraphQL şemasında tanımlıdır ve bu şemaya göre çalışırlar. Bir Mutation sorgusu, belirli bir değişikliği gerçekleştirmek için parametrelere sahiptir ve bu parametreler aracılığıyla veritabanındaki belirli bir kaydı değiştirmeyi veya silmeyi sağlar.

Mutation sorguları genellikle CRUD işlemleri (yani Create, Read, Update, Delete) için kullanılır ve bu işlemler, birden fazla kaydı tek seferde güncellemek gibi daha karmaşık işlemleri de kapsayabilir.


Subscription

Subscription GraphQL sorgusu, belirli bir olayın gerçekleşmesi durumunda veritabanından yeni veri almak için kullanılır. Örneğin, bir web uygulamasında kullanıcılar arasında gerçekleşen sohbet konuşmaları için kullanılabilir.

Subscription sorguları, diğer GraphQL sorgu türleri gibi belirli bir şema ile tanımlanır ve belirli bir olayın tetiklendiği zaman çalıştırılırlar. Bu durumda, bir tetiklenme belirli bir şema alanındaki herhangi bir değerde bir değişiklik olduğunda meydana gelir.

Örneğin, bir dizi blog yazısı içeren bir Mongo veritabanını düşünelim. Bir kullanıcının yeni bir yazı yazdığında, tüm blog yayıncılarına bir sohbet mesajı göndermek istiyoruz. Subscription sorgusunu kullanarak, yeni makale eklenirken veri yayınını aktif hale getirebiliriz.

Subscription sorguları genellikle WebSocket protokolü üzerinden iletilir. Bu protokol sayesinde sunucu tarafındaki değişiklikler anlık olarak tüm istemcilere iletilir. Subscription sorguları GraphQL tarafından veya Apollo Client gibi bir istemci tarafından işlenebilir.

Özetlemek gerekirse, Subscription sorgusu belirli bir olayın gerçekleşmesi durumunda veritabanından yeni veri almak için kullanılır. Bu sorgu türü, gerçek zamanlı uygulamalar ve sohbet kutuları için oldukça kullanışlıdır.


Örnek GraphQL Sorguları

GraphQL ve MongoDB bir araya geldiğinde, veritabanı sorguları daha kolay ve hızlı bir şekilde yapılabilir. Bu sorguların örnekleri arasında kullanıcı ekleme, kullanıcı güncelleme ve kullanıcı silme işlemleri yer alır. Bu işlemler, bir GraphQL sorgusundan geçer ve MongoDB sorgusuna çevrilir.

Örnek bir kullanıcı ekleme sorgusu için şu şekilde bir GraphQL sorgusu kullanılabilir:

Alan Tip
name String
age Int
email String

Bu sorgu, yeni bir kullanıcı eklemek için kullanılabilir ve query root alanından başlar. Örnek olarak, aşağıdaki gibi bir sorgu kullanarak yeni bir kullanıcı eklenebilir:

mutation {  addUser(name: "Ali", age: 25, email: "ali@mail.com") {    id    name    age    email  }}

Bu sorgu, yeni bir kullanıcı eklemek için kullanılabilir. İlgili alanlar verilerek yeni bir kullanıcı oluşturulur ve sonrasında bu kullanıcının ID bilgisi ve diğer bilgileri gösterilir.

Benzer şekilde, kullanıcı güncelleme ve silme işlemleri de bir GraphQL sorgusu ile yapılabilir. Örneğin, aşağıdaki gibi bir sorgu kullanarak bir kullanıcının bilgileri güncellenebilir:

mutation {  updateUser(id: "123", age: 26) {    id    name    age    email  }}

Bu sorgu, kullanıcının ID'sini vererek ilgili kullanıcının yaş bilgisinin güncellenmesini sağlar. Aynı şekilde, kullanıcı silme işlemi de benzer sorgular kullanılarak gerçekleştirilebilir. Bu şekilde, GraphQL ve MongoDB kullanarak veritabanı sorgulamaları kolaylaştırılabilir.