用于文档的Mongoose条件TTL

时间:2017-08-20 15:24:06

标签: javascript node.js mongodb

有没有办法只为某些文档设置expiresAt索引,具体取决于当前的文档状态?

1 个答案:

答案 0 :(得分:2)

是的,有。您需要设置partialFilterExpressionexpiresAt索引。仅适用于mongodb 3.2 +

以下代码仅在payed属性等于24h后才会删除文档 false

let billingSchema = new mongoose.Schema({
_id:type:Number,
summ:{
    type:Number,
    required:true
},
description:String,
payed:{
    type:Boolean,
    default:false,
    index:true
},
ownerId:{
    type:mongoose.Schema.Types.ObjectId,
    ref:'User',
    index:true
}
},{timestamps: true,_id: false});
billingSchema.index({createdAt: 1},{expireAfterSeconds: 24*60*60,partialFilterExpression : {payed: false}});