Om een lang verhaal kort te maken:MongoDB heeft een flexibele schema. Voeg eenvoudig een datumveld toe. Omdat oudere items het niet hebben, kunnen ze niet het laatste item zijn.
Laten we dat veld mtime
. noemen .
Dus na het toevoegen van een datumveld aan uw schemadefinitie, genereren we een index in aflopende volgorde op het nieuwe veld:
db.yourCollction.createIndex({mtime:-1})
Het is nu eenvoudig om de laatste tijd voor een ophaling te vinden:
db.yourCollection.find({"mtime":{"$exists":true}}).sort({"mtime":-1}).limit(1)
Doe dit voor elke collectie. Als de bovenstaande query geen waarde retourneert binnen het tijdsbestek dat u hebt gedefinieerd voor het opschonen van een verzameling, kunt u deze gewoon laten vallen, aangezien deze niet is gewijzigd sinds u het veld mtime heeft ingevoerd.
Nadat uw collecties zijn opgeschoond, kunt u de mtime
. verwijderen veld uit uw schemadefinitie. Om het uit de documenten te verwijderen, kunt u een eenvoudige zoekopdracht uitvoeren:
db.yourCollection.update(
{ "mtime":{ $exists:true} },
{ "$unset":{ "mtime":""} },
{ multi: true}
)