我想在我的activityFeed集合中只保留最新的n个文档,以加快应用程序的速度。我知道我只能在我的铁路由器配置中订阅n个activityFeed元素,但没有必要保留所有条目。 我怎样才能做到这一点? 我是否需要检查每个插页,或者有更好的方法吗?
非常感谢任何帮助。
答案 0 :(得分:0)
正如您所指出的,您的订阅可以在客户端处理此问题,但如果您还想清除数据库,则有两个明显的解决方案:
答案 1 :(得分:0)
最好是创建“上限集合”:https://docs.mongodb.org/manual/core/capped-collections/
在流星中你可以像这样使用它:
bitcount
其中x
是要存储在集合中的最大文档数,var coll = new Meteor.Collection("myCollection");
coll._createCappedCollection(numBytes, maxDocuments);
是集合的最大大小。如果达到其中一个限制,则自动mongo将从集合中删除最早插入的文档。
无需额外的脚本和cron作业。