복붙노트

[MONGODB] 몽구스를 사용하여 MongoDB의 컬렉션에 대한 만료 시간 설정

MONGODB

몽구스를 사용하여 MongoDB의 컬렉션에 대한 만료 시간 설정

다음 모음 만료 시간 (a TTL)를 설정 몽고 단자를 통해 사용될 수있는 명령은 :

db.log.events.ensureIndex( { "status": 1 }, { expireAfterSeconds: 3600 } )

어떻게 몽구스를 사용하여 Node.js를 내 코드에서이 작업을 수행합니까?

해결법

  1. ==============================

    1.(가) 해당 필드의 스키마 정의에 속성을 만료를 통해 몽구스, 당신은 날짜 필드에 TTL 인덱스를 만들 :

    (가) 해당 필드의 스키마 정의에 속성을 만료를 통해 몽구스, 당신은 날짜 필드에 TTL 인덱스를 만들 :

    // expire docs 3600 seconds after createdAt
    new Schema({ createdAt: { type: Date, expires: 3600 }});
    

    그 참고 :

  2. ==============================

    2.이 코드는 나를 위해 노력하고 있습니다.

    이 코드는 나를 위해 노력하고 있습니다.

    그것은 도움이 될 수 있습니다

    let currentSchema = mongoose.Schema({
        id: String,
        name: String,
        packageId: Number,
        age: Number
    }, {timestamps: true});
    
    currentSchema.index({createdAt: 1},{expireAfterSeconds: 3600});
    
  3. ==============================

    3.에 또한 만료 당신은 시간 계산을 만료 처리 및 스키마의 전반적인 가독성을 향상하고 싶지 않은 경우 몽구스와 함께 잘 작동하는 문자열을 제공.

    에 또한 만료 당신은 시간 계산을 만료 처리 및 스키마의 전반적인 가독성을 향상하고 싶지 않은 경우 몽구스와 함께 잘 작동하는 문자열을 제공.

    여기에 예를 들어 우리는 (2 분) 2M에 만료 설정하는 경우 몽구스 우리 120 초로 변환합니다 :

    var TestSchema = new mongoose.Schema({
      name: String,
      createdAt: { type: Date, expires: '2m', default: Date.now }
    });
    

    몽구스는 2m로 지정 (이 경우 120 초 배경과 자동 설정합니다 expireAfterSeconds에서 인덱스를 만들 것

  4. ==============================

    4.NPM 라이브러리가있다 - '몽구스-TTL'은 :

    NPM 라이브러리가있다 - '몽구스-TTL'은 :

    var schema = new Schema({..});
    schema.plugin(ttl, { ttl: 5000 });
    

    이 라이브러리의 모든 옵션을 볼 수 있습니다 : https://www.npmjs.com/package/mongoose-ttl

  5. from https://stackoverflow.com/questions/14597241/setting-expiry-time-for-a-collection-in-mongodb-using-mongoose by cc-by-sa and MIT license