2011-08-24 49 views
1

我要增加兩個值,一個高級別文件和一個嵌入文檔中:的MongoDB:公司高層文件和嵌入文檔

{ 
    studentId: "x1" 
    numberOfAttending: 2 

    courses: [ 
    { 
     courseId:"y1" 
     numberOfAttending: 1 
    }, 
    { 
     courseId:"y2" 
     numberOfAttending: 1 
    } 
    ] 
} 

我怎麼能公司參加專爲學生,爲的數量當然(upsert)。我可以做一個更新查詢嗎?

回答

2

這將是艱難的,因爲courses是一個數組。你需要知道你要更新的過程中的指數,然後像做:

{ '$inc' : {numberOfAttending : 1, 'courses.1.numberOfAttending' : 1}}

你有沒有想過它courseId切換到一個嵌入文檔作爲重點爲每門課程?如果是這樣,你可以像這樣運行一個命令來增加兩者。這不取決於位置,所以這將是那麼脆弱:如果我錯了

{ '$inc' : { numberOfAttending : 1, 'courses.y2.numberOfAttending' : 1}}

+0

糾正我,我不能做索引,如果我切換到與courseId「單嵌入文檔作爲重點爲每個「?還是有辦法? – Jimmy