我得到了两个实体的简单场景:发布;颠簸(即赞成)。
帖子示例:
{_id: 'happy_days', 'title': 'Happy days', text: '...', bumps: 2}
颠簸示例:
{_id: {user: 'jimmy', post: 'happy_days'}}
{_id: {user: 'hans', post: 'happy_days'}}
问题:在所有情况下(和失败),我如何bumps
在帖子中保持正确的计数?
到目前为止我想出的方法是:
- 碰撞,插入并检查是否存在。仅当插入时,才增加
bumps
计数。 - 要取消凹凸,删除并检查是否存在。仅当删除时,减少
bumps
计数。
如果应用程序在两个操作之间崩溃,则上述失败,纠正颠簸统计的唯一方法是查询颠簸集合中的所有文档并离线重新计算所有内容(即,无法知道哪个帖子的颠簸计数不正确)。