动态限制MongoDB中的文档

时间:2015-02-03 17:12:21

标签: mongodb mongoose

我希望动态限制集合中的文档数量。例如,我将为GOLD成员存储多达1000个文档,为SILVER成员存储500个文档。当达到特定用户的最大值并由他们创建新文档时,应删除属于该用户的最旧文档。

上限集合不适合这样的东西,所以我想知道是否由我添加自己的逻辑来实现这个“队列类型”功能,或者是否在那里有一些经过试验和测试的方法?< / p>

1 个答案:

答案 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();
});