MongoDB:运行求和

时间:2019-07-17 00:57:22

标签: mongodb concurrency

我有一个集合,可以有效地充当分布式系统的事务日志。为了说明这一点,让我使用一个虚构的示例:假设我们正在跟踪产品库存的变化。集合中的文档可能如下所示:

{
    'productSKU': 'ball',
    'productQuantity': -20,
    'employee': 'empA',
    ...etc...
}

{
    'productSKU': 'pencil',
    'productQuantity': 15,
    'employee': 'empB',
    ...etc...
}

出于某些未向您描述的极好的原因,我们还希望同时在商店中及时存储所有产品的运行总计,例如:

{
    'productSKU': 'ball',
    'productQuantity': -20,
    'storeTotalItems': 420,
    'employee': 'empA',
    ...etc...
}

{
    'productSKU': 'pencil',
    'productQuantity': 15,
    'storeTotalItems': 435,
    'employee': 'empB',
    ...etc...
}

我想我可以使用变更流并创建一个新集合来跟踪运行总和,但是使用quantityAbsolute值递增/递减子集并更新集合中的原始文档会带来竞争条件。

我可以使用管道,但是我不确定它的外观。

任何帮助将不胜感激。

0 个答案:

没有答案