MongoDB:更新所有文档中的某个嵌套元素(可能没有该元素的父元素)

时间:2016-11-30 03:36:16

标签: mongodb nosql

所以,我有一组玩家对象,看起来像:

<input type="radio" name="selections[1]" id="selections_1_3" value="">

<script>
$('#button').click(function(){
    $('#selections_1_3').prop('checked', false);
});
</script>

...我试图运行一个update()查询,为每个拥有该能力树的英雄,为集合中的每个玩家对象设置scriptData: { gameState: { heroRoster: { hero1: { abilityTrees: [{ handle: 'conjuration', abilities: { // ... } }] }, hero2: { abilityTrees: [{ handle: 'movement', abilities: { stance_dancing: { passive: true } } }] } } } } stance_dancing.passive

正如你所看到的那样,并非每个英雄都有这样的运动&#39;能力树。这个查询应该是什么样的提示?

谢谢!

1 个答案:

答案 0 :(得分:1)

我认为你在英雄的集合中拥有你所有的英雄:) 您可以通过以下方式更新:

查找:

{ "abilityTrees.abilities.stance_dancing.passive": { $exists: true } }

更新:

{
    $set: {
        "abilityTrees.$.abilities.stance_dancing.passive" : false 
    }
}

查找“abilityTrees.abilities.stance_dancing.passive”存在的所有文档,并将被动字段设置为指定值