【发布时间】:2025-12-30 21:20:23
【问题描述】:
我想使数据库中的数据过期(它可以与 expireAfterSeconds 一起使用),但我想使用 collection.update>> 数据总是实时发送数据到数据库,所以 TTL 必须处理更新数据.. 可以我这样做??
这是我的代码,用于在指定时间后使用 ttl 从 mongodb 中删除数据。
var time = "20";
MongoClient.connect(url, function(err, db) {
if (err) throw err;
var dbase = db.db("testing5");
var myobj = ({
"email" : scream_email,
"location_id" : location ,
"trend_tags" :trends ,
"language" : lang ,
"createdAt" : new Date(),
"emoji" : emoji,
"scream_link" : scream_path ,
"scream_type" : screamtype
});
dbase.collection("log_events").ensureIndex({ "email": 1 }, { expireAfterSeconds: time ,unique:true})
dbase.collection("log_events").insertOne(myobj, function(err, result) {
if (err) throw err;
resultant = result
console.log("data inserted and will be deleted approximately after 20 seconds");
db.close();
});
});
【问题讨论】:
-
我使用 azure mongo DB 进行使用。它有一个配置来定义可能包含日期时间值的字段。 Db 将从数据库中读取 expireafterseconds 的值并检查文档中的日期时间值字段。因此它工作正常。
标签: javascript node.js mongodb