Javascript 猫鼬。将生存时间设置为特定字段
我有以下文件:Javascript 猫鼬。将生存时间设置为特定字段,javascript,mongodb,mongoose,Javascript,Mongodb,Mongoose,我有以下文件: const User = mongoose.model('User', { age: Number, city: String, history: [new mongoose.Schema({ id: String, createdAt: { type: Date, default: Date.now(), index: {
const User = mongoose.model('User', {
age: Number,
city: String,
history: [new mongoose.Schema({
id: String,
createdAt: {
type: Date,
default: Date.now(),
index: {
expires: 60 * 60 * 5
}
}
})]
});
“历史记录”字段将存储用户聊天持续5小时的ID。5小时后,“历史记录”字段中的一个元素将被删除(已过期)。
当我创建这样的用户时:
let user = new User({
age: 20,
city: 'SPb',
history: [
{
id: 'asd',
createdAt: new Date()
}
]
});
user.save()
它会创建用户文档,但5小时后会删除整个文档,而不是从数组中删除元素:(,这是TTL索引无法完成的。请参阅说明: TTL索引是MongoDB可以用来 在特定时间后自动从集合中删除文档 时间量或特定时钟时间的时间量 您需要自己编写清理逻辑,或者将要删除的元素建模为单独的文档,然后通过TTL索引进行清理