2
我正在使用mongoid 3.1和Ruby 1.9.3,我試圖更新數組中的值。我可以在mongodb的CLI中成功執行以下命令,但似乎找不到適用於mongoid的解決方案/轉換。mongoid更新陣列中的元素
user.update({ activities: { $elemMatch: { uuid: "1111111-xxxx-xxxx" }}}, { $set: { 'activities.$.submitted': true }})
對於上下文中的文檔的樣子:
{
"_id" : ....,
"user_name" : "bob",
"activities: [
{
uuid: "1111111-xxxx-xxxx",
submitted: true,
},
{
uuid: "222222-xxxx-xxxx",
submitted: false,
},
{
uuid: "333333-xxxx-xxxx",
submitted: false,
}
]
}
的目標是真正基於uuid的值來更改提交。從我所知道的情況來看,所有mongoid中的「更新」解決方案只處理文檔根目錄中的屬性,並且不能爲$ position操作符提供選項。
任何幫助,將不勝感激。
謝謝
看起來像我發現在GitHub上的問題討論了答案。 我的解決方案是: User.elem_match(activities:{type:「redemption」})。elem_match(activities:{uuid:uuid})。update(「$ set」=> {「activities。$。提交「=> true}) –