For at gøre en lang historie kort:MongoDB har en fleksibel skema. Du skal blot tilføje et datofelt. Da ældre poster ikke har det, kan de ikke være den sidste post.
Lad os kalde det felt mtime
.
Så efter at have tilføjet et datofelt til din skemadefinition, genererer vi et indeks i faldende rækkefølge på det nye felt:
db.yourCollction.createIndex({mtime:-1})
Det er nemt at finde det sidste tidspunkt for en samling nu:
db.yourCollection.find({"mtime":{"$exists":true}}).sort({"mtime":-1}).limit(1)
Gør dette for hver samling. Når ovenstående forespørgsel ikke returnerer en værdi inden for den tidsramme, du definerede for at rydde en samling, skal du blot slippe den, da den ikke er blevet ændret, siden du introducerede mtime-feltet.
Når dine samlinger er ryddet op, kan du fjerne mtime
felt fra din skemadefinition. For at fjerne det fra dokumenterne kan du køre en simpel forespørgsel:
db.yourCollection.update(
{ "mtime":{ $exists:true} },
{ "$unset":{ "mtime":""} },
{ multi: true}
)