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

use*_*811 4 mongodb meteor

"users_voted" : [ 
    {
        "user_id" : "AQG8ECLdBRJ4jwPMG",
        "score" : "down"
    }
]
Run Code Online (Sandbox Code Playgroud)

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

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

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

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

Dav*_*don 8

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

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