使用MongoDB / Meteor更新数组中的特定元素

时间:2014-03-21 20:15:17

标签: mongodb meteor

"users_voted" : [ 
    {
        "user_id" : "AQG8ECLdBRJ4jwPMG",
        "score" : "down"
    }
]

想知道如何更新作为数组对象的users_voted字段。我需要更新一个特定的对象。我知道这个对象所在的index,我只需要弄清楚如何在MongoDB / Meteor集合中更新该对象。

这是一些伪代码,我必须更好地解释我的意思。

Posts.update({_id: post_id}, {$set: {vote_score[index]: u_object}});

所以在这个查询中,我知道indexpost_id以及u_object是我试图放入数组的对象,而不是那里的任何对象index。如果有人可以帮我告诉我应该怎么做,那就太好了。

1 个答案:

答案 0 :(得分:8)

您不能将变量用作对象文字中的键。试一试:

var obj = {};
obj["users_voted." + index] = u_object;
Posts.update({_id: post_id}, {$set: obj});