我有一个巨大的存储桶,其中包含所有用户的通知数据。像这样:
┌────┬─────────┬─────────────────────────┐
│ id │ user_id │ data │
├────┼─────────┼─────────────────────────┤
│ 1 │ 1 │ {"somekey":"someValue"} │
│ 2 │ 2 │ {"somekey":"someValue"} │
│ 3 │ 1 │ {"somekey":"someValue"} │
│ 4 │ 1 │ {"somekey":"someValue"} │
│ 5 │ 1 │ {"somekey":"someValue"} │
│ 6 │ 2 │ {"somekey":"someValue"} │
│ 7 │ 2 │ {"somekey":"someValue"} │
│ 8 │ 1 │ {"somekey":"someValue"} │
│ 9 │ 2 │ {"somekey":"someValue"} │
│ 10 │ 2 │ {"somekey":"someValue"} │
└────┴─────────┴─────────────────────────┘
因此,无论何时我想插入新记录,例如user_id=2
,我都想删除user_id=2
的最早记录,以使每个用户只有N
条记录(当然,如果记录总数较少比N
,将不会删除)
{
"type": "user",
"name": "ehsan",
"notifications" : [
{"somekey":"someValue"},
{"somekey":"someValue"},
{"somekey":"someValue"}
]
}
然后,该过程将是:获取文档
- 向记录数组添加记录
- 确定是否需要删除旧记录(然后将其删除)
- 保存更新的文档。