如何使用 Mongoose 删除超过 24 小时的所有对象?
How can I delete all objects over 24 hours old using Mongoose?
我想删除我的应用程序中用户注册、创建帐户但未通过上传某些图片完成验证过程的所有未完成帐户...
我是 运行 每 24 小时执行一次此任务的 cron 作业...
我想删除 imageUrlOne & imageUrlTwo == "" AND createdAt 超过 24 小时的所有对象。
我当前的代码不工作,知道我做错了什么吗?
谢谢你
const User = require("../models/user-model")
const removeInactiveAccounts = async () => {
let twentyFourHours = miliseconds(24, 0, 0)
// hours, min, seconds
function miliseconds(hrs, min, sec) {
return (hrs * 60 * 60 + min * 60 + sec) * 1000
}
let startDate = Date.now() // todays date
let endDate = startDate - twentyFourHours // 24 hours ago from today
try {
await User.deleteMany({
imageUrlOne: "",
imageUrlTwo: "",
createdAt: {
$gte: startDate,
$lte: endDate,
},
})
} catch (err) {
console.log(err.message)
}
}
module.exports = removeInactiveAccounts
你的标志有点混乱。
你说的比“现在”还早,不到 24 小时前。
为简单起见,假设“现在”是 86400
。那将使“24 小时前”0
.
所以,你有:createdAt >= 86400 && createdAt <= 0
.
嗯,那是不可能的。任何数字不能同时大于 86,400 和小于 0。
在这种情况下,您根本不需要包括开始日期。放弃它,只创建小于 endDate 的时间,你应该没问题。
我想删除我的应用程序中用户注册、创建帐户但未通过上传某些图片完成验证过程的所有未完成帐户...
我是 运行 每 24 小时执行一次此任务的 cron 作业...
我想删除 imageUrlOne & imageUrlTwo == "" AND createdAt 超过 24 小时的所有对象。
我当前的代码不工作,知道我做错了什么吗?
谢谢你
const User = require("../models/user-model")
const removeInactiveAccounts = async () => {
let twentyFourHours = miliseconds(24, 0, 0)
// hours, min, seconds
function miliseconds(hrs, min, sec) {
return (hrs * 60 * 60 + min * 60 + sec) * 1000
}
let startDate = Date.now() // todays date
let endDate = startDate - twentyFourHours // 24 hours ago from today
try {
await User.deleteMany({
imageUrlOne: "",
imageUrlTwo: "",
createdAt: {
$gte: startDate,
$lte: endDate,
},
})
} catch (err) {
console.log(err.message)
}
}
module.exports = removeInactiveAccounts
你的标志有点混乱。
你说的比“现在”还早,不到 24 小时前。
为简单起见,假设“现在”是 86400
。那将使“24 小时前”0
.
所以,你有:createdAt >= 86400 && createdAt <= 0
.
嗯,那是不可能的。任何数字不能同时大于 86,400 和小于 0。
在这种情况下,您根本不需要包括开始日期。放弃它,只创建小于 endDate 的时间,你应该没问题。