Mongoose ile Soft Delete Flag Kullanımı


Mongoose ile Soft Delete Flag Kullanımı

Mongoose ile soft delete flag kullanımı, verilerin silinmesiyle ilgili en iyi uygulamalardan biridir. MongoDB ve Mongoose ekosisteminde tam anlamıyla "silme" işlemi genellikle verilerin kalıcı olarak kaybolmasını sağlar. Ancak çoğu projede, kullanıcıya veya sistem yöneticilerine "geri alma" imkanı sunmak için soft delete yani yumuşak silme alternatif olarak tercih edilir. Soft delete için yaygın yaklaşım, belgelere bir flag (bayrak) veya durum alanı ekleyerek silindi bilgisi tutulmasıdır.

Soft Delete Flag Yapısı Nasıl Kurulur?

Genellikle bir isDeleted veya deletedAt alanı ile soft delete işlemi kontrol edilir. Bu sayede veritabanından fiziksel olarak silinmez, sadece silindi olarak işaretlenir. Mongoose ile soft delete flag kullanımı için örnek bir şema ve yöntemler aşağıdaki gibi uygulanabilir:

const mongoose = require('mongoose');

const userSchema = new mongoose.Schema({
  name: { type: String, required: true },
  email: { type: String, required: true, unique: true },
  isDeleted: { type: Boolean, default: false }
});

const User = mongoose.model('User', userSchema);

// Soft delete için güncelleme fonksiyonu
await User.findByIdAndUpdate(userId, { isDeleted: true });

Yukarıda isDeleted bayrağı yeni bir alan olarak eklendi ve ilgili kullanıcıyı "yumuşak silmek" için bu alan true değerine çekildi. Buradan sonra, normal sorgularınızda sadece silinmemiş verileri göstermek için ekstra bir filtre eklenebilir.

Soft Delete Flag Kullanan Sorgu Örneği

// Silinmemiş tüm kullanıcıları listele
const activeUsers = await User.find({ isDeleted: false });

Avantajlar ve Dikkat Edilmesi Gerekenler

Mongoose ile soft delete flag kullanımı, verilerinizi kurtarma ve silinen kayıtlar üzerinde işlem yapabilme gibi avantajlar sunar. Özellikle büyük sistemlerde, yanlışlıkla silinen veya kullanım sonrası tekrar ihtiyaç duyulan veri üzerinde rahatça işlem yapılabilir. Ancak tüm sorgularda isDeleted kontrolü yapmayı unutmamalısınız; aksi halde silinmiş veriler yanlışlıkla kullanılabilir.

Sonuç

Modern Mongoose projelerinde soft delete flag kullanımı yaygın, pratik ve güvenlidir. Doğru alan isimleriyle, uygulamanızdaki önemli verileri koruyabilir; kullanıcı deneyimini ve veri yönetilebilirliğini maksimum seviyede tutabilirsiniz. Bu yöntemle hem uygulamanızın hataya dayanıklılığını artırır, hem de veri kaybı riskini azaltırsınız.