Накратко:MongoDB има гъвкав схема. Просто добавете поле за дата. Тъй като по-старите записи го нямат, те не могат да бъдат последният запис.
Нека наречем това поле mtime
.
Така че след добавяне на поле за дата към вашата дефиниция на схема, ние генерираме индекс в низходящ ред на новото поле:
db.yourCollction.createIndex({mtime:-1})
Намирането на последния mtime за колекция сега е лесно:
db.yourCollection.find({"mtime":{"$exists":true}}).sort({"mtime":-1}).limit(1)
Направете това за всяка колекция. Когато горната заявка не върне стойност в рамките на времевата рамка, която сте дефинирали за изчистване на колекция, просто я изпуснете, тъй като тя не е била променяна, откакто сте въвели полето mtime.
След като вашите колекции бъдат изчистени, можете да премахнете mtime
поле от вашата дефиниция на схема. За да го премахнете от документите, можете да изпълните проста заявка:
db.yourCollection.update(
{ "mtime":{ $exists:true} },
{ "$unset":{ "mtime":""} },
{ multi: true}
)