我有一个集合,可以有效地充当分布式系统的事务日志。为了说明这一点,让我使用一个虚构的示例:假设我们正在跟踪产品库存的变化。集合中的文档可能如下所示:
{
'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
值递增/递减子集并更新集合中的原始文档会带来竞争条件。
我可以使用管道,但是我不确定它的外观。
任何帮助将不胜感激。