0
expiresAt
のインデックスは、現在の文書の状態によっては一部の文書でのみ設定できますか?文書のMongoose条件付きTTL
expiresAt
のインデックスは、現在の文書の状態によっては一部の文書でのみ設定できますか?文書のMongoose条件付きTTL
はい、あります。 partialFilterExpressionとexpiresAtの両方のインデックスを設定する必要があります。 payed
プロパティが false
に等しい場合にのみ、24時間後の文書を削除しますのみ3.2+
コードの下のMongoDBで動作します:
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}});
応じてドキュメントへのリンクを追加し、それが大幅にあなたの答えを改善するだろうどのように機能するかを説明します。 –