




Для этого вы можете использовать пакет правила npm https://www.npmjs.com/package/node-rules. вы можете определить правило, и если правило будет выполнено, то в результате будет удален документ. если правило заключается в подсчете количества дней с даты создания файла var RuleEngine = require ("правила узла");
/* Creating Rule Engine instance */
var R = new RuleEngine();
/* Add a rule */
var rule = {
"condition": (R) => {
console.info(this);
// check if a document creation date and current date , dates >= 7
// and check for other condition
},
"consequence": (R) => {
// delete the document
// if above condition met
}
};
вам нужно задание cron для этого
попробуйте что-то вроде этого (я использую узел-cron, но вы можете использовать любую библиотеку заданий cron, которую хотите)
import cron from 'node-cron'
import Collection from 'models/YourCollection'
cron.schedule('0 12 * * * *', () => { // execute everyday at 12:00
const lastWeek = new Date();
lastWeek.setDate(lastWeek.getDate() -7);
Collection.deleteMany({'created_at': {'$lte': lastWeek}}) // created more than 7 days
});
Значит, с индексами нет возможности сделать это? Я сам напишу код модуля.
Я думаю, вы не можете использовать несколько ключей для индексов TTL. ссылка
Я думаю, тебе нужно попробовать cronjob