Mongodb安全地upup

时间:2016-01-15 14:07:35

标签: mongodb hash upsert

我正在生成存储在mongo中的分析。这些分析存储在需要更新统计信息时上载的文档中。

让我们说我的统计文档包含两个字段:fieldAfieldB标识我在计算的内容以及包含我的统计信息的字段sum。现在,我希望每个fieldAfieldB值的组合都有一个文档,每次有新的计数时,字段sum都会更新。

逻辑选择是upsert,但它不是原子的,因此它可能会生成具有相同fieldAfieldB值的文档重复。因此,我需要找到一种方法,在fieldAfieldB的组合上添加一些唯一索引。但我想避免使用复合索引,这似乎是一种非常昂贵的方法。

目前我正在创建一个hash(fieldA + fieldB)(md5)并将其存储为id,但在我看来,它更像是一个黑客而不是一个真正的解决方案。同时它是我能想到的最便宜的解决方案,因为它使用已经存在的id的索引。这个解决方案似乎合适吗?它会在以后产生一些Mongo故障吗?应该将它集成到像Spring Data这样的Mongo客户端吗?

0 个答案:

没有答案