Mongodb根据其他阵列上的条件更新特定的阵列元素

时间:2019-11-13 11:36:50

标签: mongodb

我正在尝试根据不同的数组条件更新数组中的特定元素。

假设我有以下文件

{'user': 'a', 'segments': ['segment1', 'segment2'], 'scores': [.5, .5]}
{'user': 'b', 'segments': ['segment3', 'segment1'], 'scores': [.5, .5]}
{'user': 'c', 'segments': ['segment2', 'segment5'], 'scores': [.5, .5]}
{'user': 'd', 'segments': ['segment3', 'segment1'], 'scores': [.5, .5]}
{'user': 'e', 'segments': ['segment1', 'segment2'], 'scores': [.5, .5]}

对于以下用户-['a','b','c']我想添加“ segment2”(使用“ $ addToSet”),并在“得分”字段中添加1.0的分数,但在正确的索引。如果“ segment2”已经存在,我想更新正确的分数。

在上面的示例中,我想进行更改以导致以下结果

{'user': 'a', 'segments': ['segment1', 'segment2'], 'scores': [.5, 1.]}
{'user': 'b', 'segments': ['segment3', 'segment1', 'segment2'], 'scores': [.5, .5, 1.]}
{'user': 'c', 'segments': ['segment2', 'segment5'], 'scores': [1., .5]}
{'user': 'd', 'segments': ['segment3', 'segment1'], 'scores': [.5, .5]}
{'user': 'e', 'segments': ['segment1', 'segment2'], 'scores': [.5, .5]}

0 个答案:

没有答案