Expressjs, minimalist ve esnek bir yapısı olan Nodejs tabanlı bir web uygulama çerçevesidir Sunucu taraflı uygulamalar için tasarlanan Express, HTTP yönlendirmeleri, cookie yönetimi ve veri analizi gibi birçok özellik sunar MongoDB ise belge tabanlı bir NoSQL veritabanı sistemidir ve büyük veri kümelerini depolamak için kullanılır CRUD operasyonları ise verilerin yönetimi için temel işlemlerdir ve web tabanlı uygulamaların olmazsa olmazıdır Create operasyonu ile uygulama kullanıcılarının veriler eklemelerine ve işlemlerine izin verilir Ancak, güvenlik önlemleri almak bu operasyonun dikkatli kullanımı için önemlidir
Express.js, Node.js tabanlı bir web uygulama çerçevesidir. Hızlı, minimalist ve esnek bir yapıya sahiptir. JavaScript dilini kullanır ve web uygulamaları oluşturmayı kolaylaştırır. Express, sunucu taraflı uygulamalar oluşturmak için tasarlanmıştır ve HTTP yönlendirmeleri, cookie yönetimi, veri analizi ve HTML sayfaları gibi bir dizi özellik sunar.
Birçok ünlü uygulama Express'e dayanmaktadır. Express, web geliştiricileri tarafından kolayca öğrenilebilir ve kullanılabilir. Gerekli olan doğru yapılandırma ve kullanım ile web uygulamaları geliştirmek hızlı ve kolay hale gelir.
Express ayrıca RESTful API'ler, tek sayfa uygulamalar ve mikro hizmetler gibi modern web uygulamalarını oluşturmaya olanak tanır. Express, web uygulamalarını geliştirmek için kullanımı kolay bir set sağlar ve bu, geliştiricilere zamandan ve emekten tasarruf etme olanağı sunar.
MongoDB Nedir?
MongoDB, açık kaynak kodlu, belge tabanlı bir NoSQL veritabanı sistemidir. Büyük ölçekli verileri depolamak ve sayısız kaynağı bir arada tutmak için kullanılır.
MongoDB, Birleşik Devletler merkezli bir şirket olan MongoDB Inc. tarafından geliştirilmiştir. İlk sürümü 2009 yılında çıkmıştır. İlk sürümünden itibaren havuzlama, hizmet ölçeklendirme, güvenlik ve IT veri yönetimi üzerine inşa edilmiştir.
Veritabanı, JSON benzeri dokümanları kullanarak yapılandırılır ve dizi, veritabanı veya nesne biçiminde depolanır. MongoDB, yüksek performans sağlamak için veri depolama yapısını optimize etti ve büyük veri kümeleri için özelleştirilmiş çağrı noktaları ve indeksleme özellikleri içerir. Ayrıca, MongoDB verileri dağıtılmış bir mimaride saklayarak birçok sunucu üzerinde yükü dengeler ve veri kaybını önler.
MongoDB kullanıcı dostu bir arayüze sahiptir ve veri yöneticileri tarafından kolayca kullanılabilir, ayrıca ücretsiz bir kaynak kodlu sürümü de mevcuttur. Veri yöneticileri NoSQL çözümleri olan MongoDB'yi kullanarak içerikleri indeksleyebilir, sınıflandırabilir ve arama yapabilirler. Ayrıca, veri kaynakları güncellenirken, MongoDB sistemine kaydedilirken ve veri toplama işlemi sırasında herhangi bir sıkıntı yaşanmaz.
CRUD Operasyonları Nedir?
- CRUD nedir?
CRUD, Create, Read, Update ve Delete işlemlerinin kısaltmasıdır. Bu dört işlem, temel veritabanı işlemleridir. CRUD işlemleri, kullanıcıların veritabanında yer alan verileri yönetmelerine olanak sağlar.
- CRUD operasyonlarının önemi nedir?
Veritabanı uygulamaları ve web siteleri geliştiren çoğu insan, CRUD işlemlerini kullanmaktadır. CRUD, veritabanı işlemlerinin temelidir. Bu işlemler, veritabanında yer alan verileri düzenleme, listeleme, silme ve ekleme gibi işlemleri gerçekleştirmek için kullanılır.
CRUD işlemleri, web tabanlı uygulamaları geliştirmek için oldukça önemlidir. Bu işlemler ile birlikte, kullanıcılar veritabanında yer alan bilgilere erişebilir, verileri düzenleyebilir yada silinebilirler. CRUD operasyonları sayesinde web uygulamalarının vazgeçilmez bir parçası olmuştur.
Sonuç olarak, CRUD işlemleri web tabanlı uygulamaların veritabanlarını yönetmek için gereklidir. Bu işlemler, veritabanı işlerinin temelidir ve web uygulamalarının başarısı için önemlidir.
Create Operasyonu
Express.js, Node.js'nin bir web uygulama çerçevesidir. Create operasyonu, MongoDB veritabanına yeni bir kayıt eklemek için kullanılır. Bu operasyon, kullanıcıların uygulamanız aracılığıyla veriler eklemesine ve işlemlerine izin verir.
Create operasyonu ile, kullanıcılar varsayılan olarak "POST" istekleri gönderirler. Bu isteklerde JSON veya form verileri gönderilebilir. İstek gönderildiğinde, sunucu bu verileri analiz eder ve MongoDB veritabanına yeni bir kayıt ekler.
Create operasyonu, birçok farklı HTTP metodunu destekler. Bu HTTP metodları, uygulamanızın ihtiyaçlarına ve gereksinimlerine bağlı olarak değişebilir. Örneğin, bir RESTful API oluştururken, CREATE işlemi için varsayılan olarak "POST" metodunu kullanabilirsiniz.
Create operasyonunun kullanımı oldukça basittir. İstek göndererek, POST metoduyla veri gönderirsiniz. Daha sonra, sunucu isteği alır ve verileri MongoDB veritabanına kaydeder. Bu operasyonun kullanımı genellikle CRUD operasyonlarının en sık kullanılanıdır.
Aşağıdaki tabloda, veritabanına yeni bir kaydın eklenmesi için kullanılan Create operasyonunun özetini görebilirsiniz:
Adım | Açıklama |
---|---|
1 | İstemci, sunucuya yeni kayıt eklemesi için bir POST isteği gönderir. |
2 | Sunucu, isteği alır ve verileri analiz eder. |
3 | Sunucu, MongoDB veritabanına yeni bir kayıt ekler. |
4 | Sunucu, istemciye başarılı bir yanıt gönderir. |
Create operasyonu, Express.js ile kolayca uygulanabilir ve veritabanına yeni kayıtlar eklemenizi sağlar. Bu operasyon sayesinde, uygulamanızda önemli verileri kullanıcılarınıza sunabilirsiniz. Ancak, bu operasyonu kullanırken dikkatli olmanız gereken bazı güvenlik konuları vardır. Verilerin doğruluğunu ve güvenliğini sağlamak için, istekleri ve gelen verileri doğrulamalı ve denetlemelisiniz.
Örnek Uygulama
Create operasyonu, MongoDB kullanılarak nasıl yapılır? İşte size küçük bir örnek uygulama:
Bu örnekte, yeni bir kullanıcı oluşturacağız. Öncelikle, veritabanımızı seçmemiz gerekiyor. MongoDB'de, birden fazla veritabanı oluşturabiliriz. Biz burada "uygulama" adında bir veritabanı kullanacağız.
İlk adım olarak, oluşturduğumuz veritabanına erişmek için önce MongoClient'ı ve veri tabanımızı seçmek için mongoose'ı yüklememiz gerekiyor. Ardından veritabanımıza bağlanıyoruz:
```var MongoClient = require('mongodb').MongoClient;var mongoose = require('mongoose');
var url = "mongodb://localhost/uygulama";
mongoose.connect(url, { useNewUrlParser: true });```
Daha sonra, kullanıcı şeması tanımlanmalıdır:
```var Schema = mongoose.Schema;
var KullaniciSchema = new Schema({ad: String,soyad: String,email: String,sifre: String});```
Bu şemayı MongoDB'de "kullanicilar" koleksiyonuna bağlayacak bir model oluşturmalıyız:
```var KullaniciModel = mongoose.model('Kullanici', KullaniciSchema);```
Ardından, yeni bir kullanıcı oluşturmak için şu kodu kullanabilirsiniz:
```var yeniKullanici = new KullaniciModel({ad: 'John',soyad: 'Doe',email: 'john.doe@example.com',sifre: '123456'});
yeniKullanici.save(function (err) {if (err) return handleError(err);// saved!});```
Eğer yeni kullanıcı başarılı bir şekilde oluşturulursa, "saved!" yazısı görünür. Bu yöntem, Create operasyonunun nasıl gerçekleştirileceğine dair bir fikir verir.
Create Operasyonunun Kodlaması
Create operasyonu, bir veritabanına yeni bir kayıt oluşturmak için kullanılır. Express.js ve MongoDB ile birlikte bu operasyon oldukça kolay bir şekilde gerçekleştirilebilir. İlk olarak, veritabanı bağlantısı kurulmalıdır. MongoDB ile bağlantı kurmak içinse bir sürücü kullanmamız gerekiyor. Bu örnek için mongoose sürücüsünü kullanacağız.
Mongoose tanımlandıktan sonra bir schema (tasarım) tanımlamak gerekir. Schema, veritabanında kaydedilecek verilerin yapısını tanımlar. Bu yapı, hangi alanların kaydedileceği, alanların tipleri ve gereklilik durumlarından oluşur. Bir schema tanımladıktan sonra, bu yapıyı kullanarak bir model oluşturulur. Bu model, veritabanında kullanılabilecek bir sınıftır.
Bir model oluşturduktan sonra, bu modelle yeni bir kayıt oluşturmak için save() metodu kullanılır. Bu metod, JSON belgesi şeklinde bir veri alır ve belgeyi veritabanına kaydeder. Örnek olarak:
const mongoose = require('mongoose');const Schema = mongoose.Schema;const kullaniciSchema = new Schema({ ad: { type: String, required: true }, soyad: { type: String, required: true }, email: { type: String, required: true, unique: true }, sifre: { type: String, required: true },});const Kullanici = mongoose.model('Kullanici', kullaniciSchema);// Yeni bir kullanıcı belgesi oluşturmaconst yeniKullanici = new Kullanici({ ad: 'Ali', soyad: 'Yılmaz', email: 'ali.yilmaz@gmail.com', sifre: 'sifre123',});// Belgeyi veritabanına kaydetmeyeniKullanici.save() .then(() => console.log('Kullanıcı kaydedildi!')) .catch((err) => console.log('Kaydetme hatası:', err.message));
Bu kodda, kullaniciSchema adında bir schema tanımlanmış ve bu schema kullanarak Kullanici adında bir model oluşturulmuştur. Ardından, yeniKullanici adında bir kullanıcı belgesi oluşturulmuş ve save() metodu kullanarak veritabanına kaydedilmiştir. Bu örnek uygulama, veritabanına çoklu alanlarla birlikte yeni bir kullanıcı ekleyebilirsiniz.
Read Operasyonu
Express.js'in kullanıcılarına sunduğu en önemli özelliklerden birisi de CRUD operasyonlarını kolay bir şekilde gerçekleştirebilmeleridir. CRUD, Create, Read, Update ve Delete kelimelerinin baş harflerinden oluşan ve bir veritabanı işlemi için gerekli olan operasyonların tamamını ifade eden bir kısaltmadır. Bu operasyonlardan bir diğeri de Read operasyonudur.
Read, veritabanındaki kayıtları getirmek için kullanılan bir operasyondur. İster kullanıcı hesap bilgileri, ister blog yazıları ya da ürün detayları olsun, tüm veriler bir yerlerde saklanır. Bu verilerin sorgulanarak getirilmesi işlemine Read denir.
Veritabanında yapılan veri sorgulama işlemi, Express.js ile oldukça basittir. Bu işlem için sağlanan MongoDB yöntemi kullanılarak kolay bir şekilde gerçekleştirilebilir. MongoDB, NoSQL veritabanı türlerinden birisidir. Bu veritabanı, JSON formatındaki dokümanlar halinde verileri saklar.
Veri sorgulama işlemi, MongoDB işlevleri yardımıyla gerçekleştirilir. Sorgulama işlemi, findOne() ya da find() metotları kullanılarak yapılabilir. findOne(), bir dökümanın sorgulanması için kullanılırken, find() ile dökümanlardan tümü sorgulanabilir. Bunun yanı sıra, sorgulama işlemi için büyük/küçük harf hassasiyeti gibi özellikler de kullanılabilir.
Express.js, düşük kullanım maliyeti ve hızlı yürütme özelliği ile birlikte veri sorgulama işlemlerinin de en kolay ve hızlı şekilde yapılmasına olanak sağlar. Bu sayede, kullanıcılar kolayca veri getirme ve veri sorgulama işlemlerini gerçekleştirebilirler.
Bu özellik, özellikle web uygulamalarında büyük önem taşır. Kullanıcıların çeşitli filtreleme işlemleri yaparak belirli verileri çekmeleri mümkündür. Örneğin, e-ticaret sitelerinde bir kullanıcının yalnızca belirli bir kategorideki ürünleri görmesi için veri sorgulama işlemine ihtiyaç duyulur. Read operasyonu, tam da bu iş için kullanılır.
Örnek Uygulama
Örnek uygulamamızda, Express.js ile birlikte MongoDB kullanarak basit bir "ToDo List" uygulaması oluşturacağız. Bu uygulamayı, kayıt olmadan herkesin kullanabileceği şekilde hazırlayacağız.
Verileri saklamak için MongoDB kullanacağız ve CRUD operasyonları ile bu verilere erişeceğiz. Öncelikle, express, mongoose ve body-parser modüllerini yükleyip, express uygulamamızı oluşturalım. Daha sonra, MongoDB bağlantımızı ayarlayalım.
Uygulamamızda sadece bir sayfa olacak ve bu sayfada kullanıcılara yapılacak işlemi seçebilecekleri bir form sunulacak. Kullanıcının seçtiği işlemi yaptıktan sonra, sonucu görebileceği bir liste görüntülenecektir.
İlk olarak, "read" işlemini gerçekleştirelim. Kullanıcının "read" işlemini seçtiğinde, MongoDB'deki "tasks" koleksiyonundaki tüm verileri getireceğiz. Bu verileri bir HTML tablosunda gösterelim. Bu sayede, kullanıcıların tüm kayıtları görebilmesini sağlamış olacağız.
Aşağıdaki kod parçası, "read" işlemini gerçekleştiren kod bloğunu içermektedir:
app.get('/tasks', function(req, res){ db.collection('tasks').find({}).toArray(function(err, docs) { if (err) { console.log(err); return res.sendStatus(500); } res.render('tasks', { tasks: docs }); });});
Yukarıdaki kodda, "/tasks" route'unda bir get isteği yapıldığında, MongoDB'deki "tasks" koleksiyonundaki tüm verileri getiriyoruz ve bu verileri bir HTML template içindeki "tasks" değişkenine atıyoruz.
Bu kodu çalıştırdığımızda, /tasks route'una gittiğimizde karşımıza bir HTML tablosu gelecek ve bu tabloda tüm kayıtlar yer alacaktır.
Bu şekilde, "read" işlemini gerçekleştiren kod bloğumuzu tamamladık. Diğer CRUD işlemlerini de benzer bir şekilde gerçekleştirebiliriz.
Read Operasyonunun Kodlaması
Read operasyonu, bir MongoDB veritabanından okuma işlemi gerçekleştirmek için kullanılır. Bu işlem, Express.js kullanılarak kolayca gerçekleştirilebilir. İlk olarak, MongoDB driver'ını yükleyip, MongoDB bağlantısını yapılandırmanız gerekir.
Daha sonra, Express.js uygulamanızda "get" yöntemini kullanarak veri okuma işlemi gerçekleştirebilirsiniz. Bu yöntem, bir istek alır ve MongoDB'den veri okur. Okunan veriler, JSON formatında bir yanıt olarak sunulur.
İşlemi gerçekleştirmek için, öncelikle get() yöntemini kullanarak bir route belirlemeniz gerekir. Bu route, bir istek aldığında veri okuma işlemini gerçekleştirecektir. Örneğin:
```app.get('/users', function (req, res) { db.collection('users').find().toArray(function (err, result) { if (err) throw err; res.json(result); });});```
Yukarıdaki kod, "/users" route'unu tanımlar ve bu route'a bir istek geldiğinde "users" koleksiyonundan veri okur ve sonucu bir JSON yanıtı olarak gönderir.
Bu işlemi gerçekleştirirken, MongoDB veritabanındaki filtreleme ve sıralama seçeneklerini de kullanabilirsiniz. Örneğin, sadece belirli bir kullanıcının verilerini okumak için şu kodu kullanabilirsiniz:
```app.get('/users/:id', function (req, res) { var userId = req.params.id; db.collection('users').findOne({id: userId}, function (err, result) { if (err) throw err; res.json(result); });});```
Yukarıdaki kod, "/users/:id" route'unu tanımlar ve ":id" parametresinin belirtilmesi gerektiğini belirtir. Bu route'a bir istek geldiğinde, sadece belirtilen "id" parametresine sahip kullanıcının verilerini okur ve sonucu bir JSON yanıtı olarak gönderir.
Sonuç olarak, Express.js kullanarak MongoDB'den veri okumak oldukça kolaydır. Kendi uygulamanızda bu işlemi gerçekleştirmek için yukarıdaki örnekleri kullanarak uygun bir route tanımlayabilirsiniz.
Update Operasyonu
Update Operasyonu, CRUD operasyonlarının en önemli olanıdır. Bu işlem, bir veya daha fazla kaydın güncellenmesini sağlar. Önce verilerin filtrelenmesi gerekir; bu genellikle nesne kimliğine (Object ID) dayalı bir belge arama operasyonu kullanılarak yapılır. Daha sonra, güncellenmesi gereken alanların belirtilmesi gerekir. Bu alanlar ve belgeyi güncellemek için kullanılacak yeni veriler belirtilmelidir. Bu işlem, MongoDB'nin $set operatörü gibi özel bir işlemi kullanılarak gerçekleştirilir.
Örnek olarak, bir kullanıcının adını ve adresini güncellemek istediğimizi varsayalım. Öncelikle kullanıcının kimliğine göre kaydı bulmamız gerekir. Ardından, güncellenen kullanıcının yeni adı ve adresi belirtilir.
Aşağıdaki kod parçası, bir kullanıcının 'user' koleksiyonunda kimliğine (Object ID) göre güncellenmesini gösterir:
db.collection('user').updateOne( { _id: ObjectId("example_id") }, { $set: { name: "newName", address: "newAddress" } });
Bu işlemde, ObjectId fonksiyonu kullanılarak güncellenmesi gereken kullanıcının Object ID'si belirtilir. Yeni ad ve adres, $set operatörü kullanılarak belirtilir.
Update Operasyonu, MongoDB'de çok esnek bir işlemdir. Yalnızca bir veya birkaç nesneyi veya tüm bir koleksiyonu güncellemek için kullanılabilir. Örneğin, bir koleksiyon içindeki tüm belirli alanları güncellemek için kullanılabilir. Bu özelliği nedeniyle, Update Operasyonu, MongoDB'deki veri güncelleme ile ilgili en popüler işlemlerden biridir.
Sonuç olarak, MongoDB'de Update Operasyonu, kayıtların güncellenmesini ve belirtilen alanları değiştirilmesini sağlar. Bu işlem, $set operatörü gibi özel bir işlemle gerçekleştirilir. Update Operasyonu, MongoDB'deki veri güncelleme ile ilgili en popüler işlemlerden biridir ve çok esnek bir işlemdir.
Örnek Uygulama
Update operasyonu, MongoDB üzerindeki verileri güncellemek için kullanılan önemli bir operasyondur. Bir örnek uygulama ile bu operasyonun nasıl çalıştığına ve nasıl kodlandığına daha detaylı bakabiliriz.
Örnek uygulamamızda, bir kullanıcının adını ve yaşını güncelleyeceğiz. Öncelikle, MongoDB veritabanımıza bağlanmamız gerekiyor. Kodlamamıza
tagları içinde başlamadan önce bu bağlantı işlemini gerçekleştirmeliyiz.const mongoose = require('mongoose');mongoose.connect('mongodb://localhost/exampleDB', { useNewUrlParser: true, useUnifiedTopology: true,}, (err) => { if (err) { console.log('Veritabanına bağlanılamadı.'); } else { console.log('Veritabanına başarıyla bağlandı.'); }});
Bu kod parçası, MongoDB bağlantımızı gerçekleştiriyor. Şimdi verilerimizi MongoDB'ye ekleyebiliriz.
const User = require('../models/user.model');User.updateOne({ name: 'John Doe' }, { age: 25 }, (err) => { if (err) { console.log('Veriler güncellenirken bir hata oluştu.'); } else { console.log('Veriler başarıyla güncellendi.'); }});
Bu kod parçası, MongoDB'deki kullanıcının adını "John Doe" olan kullanıcının yaşı "25" ile güncelliyor. Kullanıcı adını da güncellemek istiyorsak, ilk parametredeki { name: 'John Doe' } objesini { name: 'Jane Doe', age: 25 } gibi değiştirmeliyiz.
Böylece, MongoDB üzerinde Update operasyonunu gerçekleştirmiş olduk. Aynı şekilde Create, Read ve Delete operasyonları da MongoDB ile gerçekleştirilebilir. Bu operasyonların tümü, Express.js ile beraber kullanıldığında daha da güç kazanır ve web uygulamaları için yüksek performanslı veritabanı işlemleri sağlar.
Update Operasyonunun Kodlaması
Update operasyonu, veritabanı üzerinde varolan bir kaydı güncelleme işlemidir. Bu işlem için değiştirilmesi istenen veri tarafımızca belirlenir ve özelleştirilen güncelleme sorgusu ile bu değişiklikleri gerçekleştiririz. Update operasyonu, 'updateOne' ve 'updateMany' olmak üzere ikiye ayrılır.
Güncelleme işlemi için öncelikle veritabanı bağlantısının yapıldığı dosyada Connection Pool oluşturulmalıdır. Bu işlem için MongoDB Driver'ın sunduğu MongoClient kütüphanesinden yararlanabiliriz. Connection Pool, veritabanı bağlantılarını yönetir ve daha hızlı çalışmamızı sağlar.
Modellerimizi oluşturduktan sonra güncelleme işlemi için find() ve findOneAndUpdate() işlemlerini kullanabiliriz. Bunun yanı sıra findOneAndUpdate() fonksiyonundan faydalanarak bazı opsiyonlar da tanımlayabiliriz.
Aşağıdaki örnekte bir öğrenci veritabanımızda bulunmaktadır ve öğrencinin notu güncellenmek istenmektedir. Bu işlem için aşağıdaki kod parçası kullanılabilir:
```javascriptconst ObjectID = require('mongodb').ObjectID;
// Öğrencinin verilericonst student = { id: new ObjectID(), name: 'Ali', surname: 'Yılmaz', grade: 85};
// Öğrencinin verilerini güncellemedb.collection('students').findOneAndUpdate( { _id: student.id }, // güncellenecek öğrencinin idsine erişim { $set: { grade: 90 } }, // güncellenecek veri { returnOriginal: false } // güncellenen verinin dönüşünü sağlama).then((result) => { console.log(result);}).catch((error) => { console.log(error);});```
Bu örnekte öğrencinin veri alanı 'grade' güncellenmektedir. 'findOneAndUpdate' fonksiyonu kullanılarak özelleştirilmiş bir sorgu ile veri güncellenir ve güncellenen veri sonucu konsol ekranına yazdırılır.
Delete Operasyonu
Delete operasyonu, veritabanından belirli bir kaydı silme işlemidir. Bu işlem, veritabanındaki verileri güncelleme amacıyla sıklıkla kullanılır. İşlem, MongoDB gibi doküman tabanlı veritabanlarında oldukça basit bir şekilde gerçekleştirilir.
Delete operasyonu, diğer CRUD operasyonları kadar sıklıkla kullanılmasa da büyük öneme sahiptir. Veritabanındaki fazla veya işe yaramaz verileri silme işlemi, veritabanının performansını artırabilir ve gereksiz veri yükünü azaltabilir.
İşlem Adı | Açıklaması |
---|---|
Delete | Veritabanından belirtilen belgeyi siler |
- Veritabanında bir kaydı silmek için, öncelikle ilgili belgenin ID'sinin belirlenmesi gerekir.
- Silme işlemi, findOneAndDelete() veya deleteOne() fonksiyonları kullanılarak gerçekleştirilir.
- Bu işlem tamamlandıktan sonra, belge veritabanından silinir ve yapılan değişiklikler kaydedilir.
Örnek olarak, bir blog sitesinde yayınlanan bir makalenin veritabanından silinmesi düşünülebilir. Bu işlem, MongoDB gibi veritabanlarında oldukça basit bir şekilde gerçekleştirilebilir. Bunun için öncelikle ilgili belgenin ID'si belirlenmelidir ve daha sonra bu ID'ye göre findOneAndDelete() veya deleteOne() fonksiyonu kullanılarak silme işlemi gerçekleştirilir.
Bu sayede veritabanındaki gereksiz veriler silinir ve kullanıcılar tarafından daha hızlı bir şekilde erişilebilir hale gelir. Delete operasyonu sayesinde, veritabanındaki verilerin güncelliği de korunmuş olur.
Örnek Uygulama
Delete operasyonu, veri tabanındaki verilerin silinmesi işlemidir. Bu işlem değişken veya sabit verileri kullanarak gerçekleştirilebilir. Delete işlemi, bir kullanıcının web sitesinden bir gönderiyi silmek istemesi için de kullanılabilir. Örnek bir uygulama için:
Veritabanında kullanıcılara ait verilerin olduğu bir örnek sisteme sahip olalım. Kullanıcıların adı, soyadı, e-posta ve şifre bilgileri tutulmaktadır. Diyelim ki kullanıcılardan biri artık sistemden kaldırılmak istiyor. Bu işlem için kullanıcıya ait veriler delete operasyonu ile silinir.
Öncelikle MongoDB bağlantısının yapılması gerekir. Bağlantı yapıldıktan sonra, veritabanından silinecek olan verinin seçilmesi gerekmektedir. Seçilen verinin id'si, delete işlemi için parametre olarak kullanılacaktır.
Delete işlemi için Express.js framework'ünün kullanılması gerekir. express, mongodb, body-parser paketleri kullanarak API yazabilirsiniz. Verileri silmek için aşağıdaki kod parçasını kullanabilirsiniz:
```app.delete('/users/:id', function(req, res) { var id = req.params.id; db.collection('users').remove({_id: ObjectId(id)}, function(err, result) { res.send((result === 1) ? { msg: 'Success' } : { msg: 'error: ' + err }); });});```
Yukarıdaki kod parçası, "/users/:id" alanından bir DELETE isteği alır ve veritabanından belirtilen id'ye sahip olan bir veriyi siler. Başarılı bir şekilde silme işlemi gerçekleştiyse, "Success" mesajı döndürülür. Aksi takdirde, "error" mesajı ve bir hata nesnesi döndürülür.
Bu şekilde, veritabanından delete işlemi gerçekleştirilebilir. Bu örnek uygulama, MongoDB ve Express.js kullanarak üzerinde çalışmış olduğunuz uygulamalar için bir örnek olarak kullanılabilir.
Delete Operasyonunun Kodlaması
Delete operasyonu, MongoDB veritabanından belirli bir veri kümesini silmek için kullanılır. Express.js ile kodlama işlemi oldukça kolaydır. Silme işlemi yapmak için MongoDB Driver for Node.js kullanılabilir.
Silme işlemi için, HTTP DELETE isteği kullanılır ve bu işlem için Express.js'in "delete" metodunu kullanabilirsiniz. Aşağıdaki kod örneği, "users" koleksiyonundan "_id" alanı belirli bir id değerine sahip olan kullanıcıyı siler:
```app.delete('/users/:id', function(req, res) { var db = req.db; var collection = db.get('users'); var userToDelete = req.params.id; collection.remove({ '_id' : userToDelete }, function(err) { if (err) { res.send(err); } else { res.send('User deleted successfully!'); } });});```
Bu kod, "/users/:id" endpointine gelen DELETE isteğinde, "users" koleksiyonundan "_id" alanı belirli bir id değerine sahip olan kullanıcıyı siler. Silme işlemi başarılı olursa, "User deleted successfully!" mesajı gösterilir.
Silme işlemi için kullanılabilecek diğer metotlar şu şekildedir:
- `collection.deleteOne()` : Tek bir belgeyi siler.- `collection.deleteMany()` : Çoklu belgeleri siler.
Bu metotlar, "users" koleksiyonundan belirli bir şartı sağlayan tüm belgeleri silmek için de kullanılabilir. Bu şekilde kodlama işlemi kolaylaşır ve daha az kod yazmanız gerekir.
Silme işlemi sırasında dikkat edilmesi gereken bir husus, silme işleminin geri alınamamasıdır. Yanlış bir silme işlemi yaparsanız, verileri geri getirmek neredeyse imkansızdır. Bu nedenle silme işlemi öncesinde dikkatli olunmalı ve gerektiğinde veriler yedeklenmelidir.
Sonuç olarak, MongoDB ve Express.js ile yaptığınız bir uygulamada, verileri güncellemek veya silmek gibi CRUD işlemleri oldukça kolaydır. Anlaşılır kodlama yöntemleri sayesinde bu işlemleri kolayca gerçekleştirebilir ve veritabanınızın doğru çalışmasını sağlayabilirsiniz.