【发布时间】:2021-04-05 14:18:40
【问题描述】:
我有一个看起来像这样的猫鼬模式:
const USERS_DATA = new Schema({
_id: Number,
name: String,
img: String,
date: Date,
phone: String,
article: String,
createdAt: {
type: Date,
required: true,
default: Date.now,
index: { expires: '3d' }
}
},
{
collection: "users",
_id: false,
}
);
我需要将数据推送到此架构。
const User = mongoose.model("users", USERS_DATA);
function pushToDB() {
const newUser = new User({
name: INPUT.name,
img: INPUT.img,
date: INPUT.date,
phone: INPUT.phone,
article: INPUT.article,
});
newUser.save(function (err) {
mongoose.disconnect();
if (err) return console.log(err);
});
}
此数据必须在推送到数据库后 3 天后删除。如何在 node.js 中实现它?我发现它真的很混乱,并尝试了很多代码。任何答案表示赞赏!谢谢
附:我使用 mongoDb Atlas
【问题讨论】:
-
我建议使用节点 cron 或
setTimeout()并将持续时间设置为 3 天。在那之后,只需从数据库中删除文档 -
@GillesHeinesch 我认为这会有点困难,因为对于这个解决方案,我需要为每个查询调用超时并比较当前日期和创建查询时的日期。但我可能是错的
-
@GillesHeinesch 分贝。在我的情况下是 USERS_DATA 还是 mongoose.connection?
标签: node.js mongodb mongoose mod-expires