2017-12-31 11 views
0

나는이은 개체 숫자 값

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에 의해 득점의 수를 증가 할 수 있도록하려면 내 몽고 DB 컬렉션 내에서 다음과 같은 항목 이 데모를 찾기 위해 아침 내내 노력했지만, 내가 일하기에 충분할만큼 가까이에있는 것을 찾을 수 없습니다.

답변

0

숫자를 늘리려면 $inc 연산자를 사용해야합니다. players 배열 안에 하나의 특정 문서에 대해 이렇게하려면 positional operator을 사용해야합니다.

그래서 전체 작업은 다음과 같아야합니다

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

Ronaldogoals 업데이트됩니다. 모든 플레이어의 목표를 업데이트하려면 새로운 모든 위치 지정 연산자를 사용해야합니다. $[]

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