2017-08-20 11 views

答えて

1

はい、あります。 partialFilterExpressionexpiresAtの両方のインデックスを設定する必要があります。 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}}); 
+1

応じてドキュメントへのリンクを追加し、それが大幅にあなたの答えを改善するだろうどのように機能するかを説明します。 –