如果当前日期 > 文档日期,如何删除文档
How delete a document if the current date > document date
我有以下架构:
Schema = {(
name: String,
age: Number,
email: String,
date: {
type: Date
}
)};
我在我的数据库中插入数据动态地抛出一个表单和一个 post 路由。之后,我正在提取这些数据并使用 ejs 视图引擎在 html 中显示。
问题是我想删除日期字段小于当前日期的文档。
我正在尝试使用 TTL,但我不知道具体如何实施,我应该在模式中使用,还是在保存数据之前,在新条目中使用?
例如,在我的 post 路线中,我有以下代码:
var new = new Schema({
name: req.body.name,
age: req.body.age,
email: req.body.email,
date: {
type: req.body.date
}
});
new.save......
.... etc
我想在 req.body.date 后 24 小时删除此文档,而不是在创建后 24 小时...
我有点困惑,非常欢迎任何帮助。
您可以通过 TTL collection 实现。
您可以将 expireAfterSeconds
设置为 86400 并将日期元素设置为当前日期,它应该会在一整天后过期。
实现方式是在连接到服务器时发出此命令:
db.collection.ensureIndex( { "date.type": 1 }, { expireAfterSeconds: 86400 } )
我不知道您的应用程序如何发送它发送给 MongoDB 的数据,但您需要确保它发送的时间戳对应于当前时间之前的午夜。
例如,如果发送表单时是 1/29/2015 2:07:33 PM,则发送到 MongoDB 的时间戳应该是 1/29/2015 12:00:00 AM .使用上面设置的索引,MongoDB 将在 2015 年 1 月 30 日 12:00:00 上午删除文档。
我有以下架构:
Schema = {(
name: String,
age: Number,
email: String,
date: {
type: Date
}
)};
我在我的数据库中插入数据动态地抛出一个表单和一个 post 路由。之后,我正在提取这些数据并使用 ejs 视图引擎在 html 中显示。
问题是我想删除日期字段小于当前日期的文档。
我正在尝试使用 TTL,但我不知道具体如何实施,我应该在模式中使用,还是在保存数据之前,在新条目中使用?
例如,在我的 post 路线中,我有以下代码:
var new = new Schema({
name: req.body.name,
age: req.body.age,
email: req.body.email,
date: {
type: req.body.date
}
});
new.save......
.... etc
我想在 req.body.date 后 24 小时删除此文档,而不是在创建后 24 小时...
我有点困惑,非常欢迎任何帮助。
您可以通过 TTL collection 实现。
您可以将 expireAfterSeconds
设置为 86400 并将日期元素设置为当前日期,它应该会在一整天后过期。
实现方式是在连接到服务器时发出此命令:
db.collection.ensureIndex( { "date.type": 1 }, { expireAfterSeconds: 86400 } )
我不知道您的应用程序如何发送它发送给 MongoDB 的数据,但您需要确保它发送的时间戳对应于当前时间之前的午夜。
例如,如果发送表单时是 1/29/2015 2:07:33 PM,则发送到 MongoDB 的时间戳应该是 1/29/2015 12:00:00 AM .使用上面设置的索引,MongoDB 将在 2015 年 1 月 30 日 12:00:00 上午删除文档。