如何在mongoose中设置子文档的过期

 mobiledu2502853587 发布于 2023-02-05 12:57

这是我的计划:

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行...这可能吗?

对不起我的英语,我说西班牙语.

1 个回答
  • 您不能使用TTL索引在到期时删除文档的一部分.

    但是,它看起来像是authUserScheme一个会话概念而不是嵌入式文档.

    更好的方法是使用一个参考从authUserScheme给相关用户,如:

    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);
    

    2023-02-05 12:58 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有