我希望动态限制集合中的文档数量。例如,我将为GOLD成员存储多达1000个文档,为SILVER成员存储500个文档。当达到特定用户的最大值并由他们创建新文档时,应删除属于该用户的最旧文档。
上限集合不适合这样的东西,所以我想知道是否由我添加自己的逻辑来实现这个“队列类型”功能,或者是否在那里有一些经过试验和测试的方法?< / p>
答案 0 :(得分:1)
使用执行&#34;封顶&#34;的预保存中间件每次保存。
schema.pre('save', function(next) {
model.find({}, {
sort: { $natural: -1 }, // sort in reverse
limit: 50, // to get last 50 docs
}).remove();
next();
});