I’m using Mongoose to connect with my MongoDb cluster.
My site has a logging feature. I would like these logs to deleted once they are 6 months old. To do this, I have a file that runs every day to delete documents that are more than 6 months old.
However, the deleteMany() function does not provide me with context to run a function on each document, only that every document has a specific value.
Dates are stored as numbers (shown below)
const mongoose = require('mongoose');
let Sch = new mongoose.Schema( {
id: {
type: String,
default: '',
required: true,
},
password: {
type: String,
default: '',
required: true
},
email: {
type: String,
default: '',
required: true
},
first_name: {
type: String,
required: true,
default: 'John'
},
last_name: {
type: String,
required: true,
default: 'Doe'
},
username: {
type: String,
default: '',
required: true
},
seven_shifts: {
type: Object,
default: {},
},
positouch: {
type: Array,
default: {}
},
departments: {
type: Array,
default: [],
required: true
},
locations: {
type: Array,
default: [],
required: true
},
tip_periods: {
type: Array,
default: []
},
w_4: {
type: String,
default: ''
},
employedSince: {
type: Number
},
notes: {
type: Array,
default: []
},
last_login: {
type: Number
},
});
module.exports = new mongoose.model('User', Sch, 'users');
All I need is a way to check if the number in "date" is less than the one I provide in the function
Does anybody know of a way I can delete the matching documents in one query?
Thanks.