Herkese merhaba,
MongoDB, verileri JSON benzeri bir biçimde depolayan popüler bir NoSQL veritabanıdır. MongoDB'nin kullanışlı özelliklerinden biri, belgeleri belirli bir süre sonra bir koleksiyondan otomatik olarak silmenizi sağlayan Yaşam Süresi (TTL) özelliğidir.
TTL özelliği, geçici verileri depolamak veya süresi dolmuş verileri temizlemek gibi birçok uygulama için kullanışlıdır. Örneğin, bir web uygulaması için oturum verilerini depolamak, ancak otomatik olarak silinmeden önce yalnızca birkaç saat saklamak isteyebilirsiniz. Eski günlük verilerini veya diğer süresi dolmuş verileri silmek için TTL özelliğini de kullanabilirsiniz.
MongoDB'de TTL özelliğini kullanmak için, kullanmak istediğiniz koleksiyon üzerinde özel bir dizin oluşturmanız gerekir. Bu dizin, koleksiyondaki belgeler için son kullanım süresi ve geçerlilik süresi (saniye olarak) olarak kullanmak istediğiniz alanı belirtir. Dizini oluşturduktan sonra, süre sonu alanında bir değerle koleksiyona eklenen tüm belgeler, belirtilen saniye sayısından sonra otomatik olarak silinir.
MongoDB'de bir TTL dizini oluşturmak için toplama nesnesinde createIndex()
yöntemini kullanabilirsiniz. Örneğin:
db.myCollection.createIndex({ "expireAt": 1 }, { expireAfterSeconds: 3600 })
Bu, myCollection
koleksiyonundaki expireAt
alanında 3600 saniyelik (1 saat) bir TTL dizini oluşturacaktır. ExpireAt
alanında bir değerle koleksiyona eklenen belgeler 1 saat sonra otomatik olarak silinir.
Bir koleksiyonun TTL dizinini istediğiniz zaman createIndex()
yöntemini kullanarak da güncelleyebilirsiniz. Örneğin:
db.myCollection.createIndex({ "expireAt": 1 }, { expireAfterSeconds: 86400 })
Bu, 'myCollection' koleksiyonundaki TTL dizinini 86400 saniyelik (1 gün) bir yaşama süresine sahip olacak şekilde güncelleyecektir. ExpireAt
alanında bir değerle koleksiyona eklenen tüm belgeler artık 1 gün sonra otomatik olarak silinecek.
Sonuç olarak, MongoDB'deki TTL özelliği, belgeleri belirli bir süre sonra bir koleksiyondan otomatik olarak silmek için kullanışlı bir araçtır. İster geçici verileri depolamanız, ister süresi dolmuş verileri temizlemeniz gereksin, TTL özelliği bu görevleri otomatikleştirmenize ve veritabanınızı düzenli ve verimli tutmanıza yardımcı olabilir.
Comments