2016-11-30 5 views
0

(つまり、その要素の親を持たない場合があります)すべてのドキュメント内の特定のネストされた要素を更新し、私のようなものに見える選手オブジェクトのコレクションを持っている:のMongoDB:だから

scriptData: { 
    gameState: { 
     heroRoster: { 
      hero1: { 
       abilityTrees: [{ 
        handle: 'conjuration', 
        abilities: { 
         // ... 
        } 
       }] 
      }, 
      hero2: { 
       abilityTrees: [{ 
        handle: 'movement', 
        abilities: { 
         stance_dancing: { 
          passive: true 
         } 
        } 
       }] 
      } 
     } 
    } 
} 

を...と私はその能力ツリーを持つヒーローごとに、コレクション内のすべてのプレイヤーオブジェクトに対して、stance_dancing.passivefalseを設定するupdate()クエリを実行しようとしています。

あなたが見るとおり、すべてのヒーローが「動き」能力ツリーを持っているわけではありません。どのようなヒントは、このクエリはどのように見えるはずですか?

ありがとうございます!

私はあなたがすべてのあなたの英雄の英雄ののコレクション内を持っていると推測:) あなたが更新できる
+0

IMHOあなたはjavascriptでそれを行う必要があります – harishr

答えて

1

検索:

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

更新:

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

これは、すべての文書を検索します「abilityTrees.abilities.stance_dancing.passive」が存在し、パッシブフィールドが指定された値に設定されている場合

関連する問題