2014-04-02 10 views
1

내 앱의 문서 컬렉션에 TTL을 설정해야하지만 다른 문서에서 참조 할 문서가 필요하며 이것이 어떻게 작동하는지 확신 할 수 없습니까?몽구스 참조 문서의 TTL 만료

문서의 TTL을 설정하면 만료되었거나 직접 백엔드 프로세스를 작성하고 mongoDb의 TTL 인덱스를 사용하지 않아야하는 경우 다른 모든 참조 문서에서 해당 문서가 제거됩니까?

기능의 예 스키마는 내가 원하는 것 :

var mongoose = require('mongoose') 
    , Schema = mongoose.Schema 

var personSchema = Schema({ 
    _id  : Number, 
    name : String, 
    age  : Number, 
    stories : [{ type: Schema.Types.ObjectId, ref: 'Story' }] 
}); 

var storySchema = Schema({ 
    _creator : { type: Number, ref: 'Person' }, 
    createdAt: { type: Date, expires: 60*60*24 }, 
    title : String, 
    fans  : [{ type: Number, ref: 'Person' }] 
}); 

var Story = mongoose.model('Story', storySchema); 
var Person = mongoose.model('Person', personSchema); 

을 따라서 스토리 문서가 만료 것이다 그리고 난 사람에서

답변

0

내장 만료 그 이야기에 심판을해야 하루 만에 TTL 문서 만료에는 만료 된 문서에 대한 참조를 삭제할 수 없습니다.

필요할 경우 코드에 해당 기능을 제공해야합니다.

0

TTL 색인으로 처리 할 수 ​​없습니다. cron 작업/예약 된 작업을 사용하여 이전 문서를 제거 할 수 있습니다.

, MongoDb에서 백그라운드 프로세스를 구현하는 아주 간단한 방법을 읽어 보시기 바랍니다.