javascript - 为每个用户只保留 100 条新记录,删除 firebase 中的旧记录
问题描述
我有一个feed
json,我希望每个用户只保留 100 条记录。因此,每次我在那里放一条新记录时,我都想删除旧记录。
要获得我想保留的帖子,我会这样做:
feedRef = firebase.database().ref().child('feed').child(user_id).limitToLast(100);
如何删除其他旧的?
解决方案
环形缓冲区解决方案就足够了吗?您预先分配了 100 条记录。通过存储指向该记录的计数器来跟踪哪个是最新的。当创建新记录时,更新计数器模 100 以在需要时将其重置为开始,然后将记录存储在新计数器指向的位置。
这样,较新的记录将覆盖最旧的记录,并且不需要额外的维护。
替代方案:运行删除旧条目的 cron 作业。例如,查询 100 个最新条目并获取最旧的时间戳,然后删除比该时间戳更早的记录。
然而,这假设了维护任务,并且不能保证每个用户最多只存在 100 条记录。但这可能无需对您的数据库结构进行任何修改即可实现。
推荐阅读
- php - 我想做一个在线招聘网站
- html - 列空间,CSS 网格布局
- regex - .NET Core - 正则表达式匹配整个字符串而不是组
- javascript - 通过查询对 JS 字符串数组进行排序
- cplex - Cplex 终止标准
- jquery - 如何在 Mozilla Firefox 上同时滚动两个 div?
- c++ - C++ 中基于范围的 For 循环:它是如何工作的?
- reactjs - 为什么故事书不使用与项目中相同的 webpack 配置?
- firebase - Firebase Auth 现在可以在没有 Google 服务的情况下工作。在中国能行吗?
- ios - 无法每分钟刷新 WidgetView