2017-12-31 61 views
0

I持っては、オブジェクトの数値

db.teams.insert({ 
    team_id: "spa2", 
    date_founded: new Date("Nov 04, 1914"), 
    league: "La Liga", 
    points: 72, 
    name: "Real Madrid", 
    players: [ { p_id: "Ronaldo", goal: 135, caps: 134, age: 28 }, 
       { p_id: "Bale", goal: 75, caps: 45, age: 27 }, 
       { p_id: "Marcelo", goal: 11, caps: 25, age: 31 }, 
       { p_id: "Benzema", goal: 125, caps: 95, age: 22 } ] 
    }); 

が、私は3

Iによって得点の数を増やすことができるようにしたい私はMongo DBコレクション内の次の項目このデモを見つけるために午前中に試してみましたが、それが動作するように私が近くにあるものはどれも見つけられません。

答えて

0

番号を増やすには、$inc演算子を使用する必要があります。 players配列内のある特定のドキュメントに対してこれを行うには、positional operatorを使用する必要があります。

だから、全体の動作は次のようになります。

db.teams.update({_id: ObjectId("5a48d65f3a1e3fc4b06b787f"), "players.p_id": "Ronaldo"}, {$inc: {"players.$.goal": 3}}) 

これはRonaldoのためだけgoalsを更新します。すべてのプレイヤーの目標を更新する場合は、新しい全ポジションオペレーターを使用する必要があります。$[]

db.teams.update({_id: ObjectId("5a48d65f3a1e3fc4b06b787f")}, {$inc: {"players.$[].goal": 3}}) 
関連する問題