我们正在考虑将MongoDB上限的集合用作我们的fifo队列。 我们的要求如下:
但是我们面临以下问题: 上限集合保证按插入顺序读取。但是,不能保证_id是单调的。 这意味着,如果有多个生产者,则会发生以下情况:
[
...
{
_id: 5b72f12599757c9e26c0946b,
...
},
{
_id: 5b72f12599757c9e26c0946d,
...
},
{
_id: 5b72f12599757c9e26c0946c,
...
},
{
_id: 5b72f12599757c9e26c0946e,
...
},
...
]
这意味着如果我们开始使用以下代码进行消费:
const cursor = collection
.find({ _id: { $gt: "5b72f12599757c9e26c0946d" } })
.tailable()
.cursor();
然后将跳过带有5b72f12599757c9e26c0946c的消息。
所以我的问题如下:
谢谢。