افزودن TTL در MongoDb توسط C#
2017-10-24
ارسال شده توسط عثمان رحیمی
3.57k بازدید
TTL ( time to leave )
در MongoDb قادر خواهید بود که یک TTL ثبت نمایید به این صورت که سندهای (document) ذخیره شده را بعد از مدت زمان مشخصی حذف نمایید . یکی از کاربرد های این کار برای مثال زمانی هست که سند های ذخیره شده باید بعد از مدت زمان مشخصی مجدد در دیتابیس دخیره شود به دلایل تغییراتی که در داده های به وجود آمده است .
برای انجام این کار ابتدا باید یک ایندکس بر روی یک از فیلد ها مدل مورد نظر خودتان که از نوع DateTime است تعییر نمایید به صورت زیر :
1 2 3 4 5 6 7 8 9 10 11 12 |
Student st = new Student() { Name = "osman", Family = "rahimi", Age = 25, expireAt = DateTime.Now.AddMinutes(5) }; collection.Indexes.CreateOne(Builders<Student>.IndexKeys.Ascending("expireAt "), new CreateIndexOptions { ExpireAfter = new TimeSpan(0, 0, 60) }); |
در صورتی که مدل شما دارای فیلدی همانند از نوع DateTime نیست می توان ابتدا مدل مورد نظر خود را تبدیل به BsonDocument کرده و سپس یک BsonElement به آن اضافه نمایید .
1 2 3 4 5 6 7 8 |
List<BsonDocument> bsonList = new List<BsonDocument>(); foreach (var item in students) { var newItem = item.ToBsonDocument(); newItem.Add(new BsonElement("expireAt", DateTime.Now.AddMinutes(2))); bsonList.Add(newItem); } |
* – در صورتی که فیلدی که روی آن ایندکس انجام شده است حاوی مقدار Date نباشد سند ها هیچ وقت حذف نخواهند شد .
مطالب زیر را حتما مطالعه کنید
فراخوانی View توسط Entity framework Core
View چیست ؟ در SQL Server ، ویو یک جدول...
تحلیل بخش خصوصیات کالاها به همراه ساختار درختی فروشگاه الکترونیک
امروزه اکثر کسانی که قصد پیاده سازی فروشگاه اینترنتی را...
بررسی تابع Stuff در Sql server
نحوه عملکرد این تابع : کاربرد این تابع در رابطه...
تبدیل مقدار یک ستون دارای کاما به رکورد های متعدد
جدول زیر را در نظر بگیرید : قصدا داریم مقدار...
بررسی توابع ISNULL,NULLIF,COALESCE در SQL Server
یکی از امکانات پایگاه داده sql server، تعداد زیادی توابع...
بررسی تابع ()NEWID در SQL Server
تابع NewId : همانطور که می دانید، پایگاه داده SQL...
دیدگاهتان را بنویسید
برای نوشتن دیدگاه باید وارد بشوید.