gpt4 book ai didi

mongodb - 如何在 Mongoose 中为子文档设置过期

转载 作者:可可西里 更新时间:2023-11-01 09:12:26 26 4
gpt4 key购买 nike

这是我的计划:

var authUserScheme = mongoose.Schema({
token: String,
ip: String,
valid: {type: Date, default: Date.now(), expires: '1m' },
}, {_id: false});

var usersSchema = mongoose.Schema({
// OTHER THINGS
auth : [ authUserScheme ],
// other things
});

当我设置“auth”路径时,mongodb 会删除整个文档,但我只想在过期日期时删除 auth 行...这可能吗?

对不起我的英语不好,我会说西类牙语。

最佳答案

您不能使用 TTL 索引在到期时删除文档的一部分。

但是,看起来您的 authUserScheme 实际上更像是一个 session 概念,而不是嵌入式文档。

更好的方法是使用 referenceauthUserScheme 到相关用户,例如:

var authUserSchema = mongoose.Schema({
token: String,
ip: String,
valid: {type: Date, default: Date.now(), expires: '1m' },
user: { type: Number, ref: 'User' }
});

var userSchema = mongoose.Schema({
name: String,
// Other fields
})

var AuthUser = mongoose.model('AuthUser', authUserSchema);
var User = mongoose.model('User', userSchema);

关于mongodb - 如何在 Mongoose 中为子文档设置过期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20980413/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com