sql >> データベース >  >> NoSQL >> MongoDB

mongodbに住む時間、マングースは機能しません。ドキュメントが削除されない

    var UserSessionSchema   = new Schema({
        sessionActivity:    { type: Date, expires: '15s', default: Date.now }, // Expire after 15 s
        user_token:         { type: String, required: true }
    });
    

    TTLインデックスは、その値(DateまたはDatesの配列である必要があります)が経過してからドキュメント'x'秒を削除します。 TTLは毎分チェックされるため、指定された15秒より少し長く存続する可能性があります。

    日付にデフォルト値を与えるには、defaultを使用できます マングースのオプション。関数を受け入れます。この場合、Date() 現在のタイムスタンプを返します。これにより、日付が現在の時刻に1回設定されます。 。

    このルートに行くこともできます:

    UserSessionSchema.pre("save", function(next) { 
        this.sessionActivity = new Date(); 
        next(); 
    });
    

    これにより、値が毎回更新されます .save()を呼び出します (ただし、.update()ではありません 。



    1. パイプラインを使用してMongoで効率的に並べ替え、グループ化、制限することは可能ですか?

    2. mongodbで非同期的に複製されたデータを更新するためのベストプラクティス

    3. Mongodb Aggregation:配列の一致する要素のみを返す方法

    4. mongooseを使用してMongoDbからデータを取得するにはどうすればよいですか?