【发布时间】:2020-10-01 12:50:39
【问题描述】:
我有一个排序的时间序列项目。每 1 秒我想插入一个包含任意计数的文档:
{ count: Number }
然后我想每隔 5 秒删除插入的第一个文档,直到这些文档中的计数累积总和大于 10。
所以我有一个这样的列表(集合):
[{ count: 5 }, { count: 3 }, { count: 2 }, { count: 7 }, { count: 8 }]
然后在删除第一个文档后,它就变成了
[{ count: 7 }, { count: 8 }]
因为5 + 3 + 2 == 10我停止删除文档。
保证对列表进行排序,以便仅删除列表开头的元素,仅将元素追加到末尾。
实现这样的 FIFO 列表的最佳方法是什么,以便删除元素是 O(1),附加元素也是 O(1)?
【问题讨论】:
标签: database mongodb mongoose database-design mongodb-query