簡體   English   中英

在 mongoDB 中實現 FIFO 集合的最佳方法是什么?

[英]What is the best way to implement a FIFO collection in mongoDB?

我有一個排序的時間序列項目。 每 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)?

為每個文檔添加一個時間戳字段,在查詢按時間戳排序時,將當前時間寫入其中。

或者,您可以使用$push$pop在單個文檔中實現隊列。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM