我需要在我的应用程序中的文档集合上设置 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);
因此,一天后,故事文档将过期,我需要该故事的参考资料从该人那里过期