如何在mongo / meteor中更新带有变量名的内部字典?

时间:2014-10-26 23:06:49

标签: mongodb meteor

具体来说,我有一个名为Ideas的系列。 一个想法可能看起来像这样:

{
    _id:"453uit8ig9", 
    body:"my idea description",
        relations: {
            "9fg8oew74gt9ebh":{weight:1,  unconfirmed:true}, 
            "754787hsdfh":{weight:1,  unconfirmed:true}, 
            "ghtruuy6767":{weight:1,  unconfirmed:true}, 
            "479898ioujhh":{weight:1,  unconfirmed:true}, 
        }
}

“relations”属性是一个字典,其ID为相关的Ideas作为键,另一个字典表示关系的性质为值。

如果我有一个Idea的ID和一个与之相关的想法的ID,那么如何制作一个mongo更新查询来改变“未经证实的”属性(即将其设置为false)?

1 个答案:

答案 0 :(得分:0)

如果您将relations重写为{relation, weight, unconfirmed}数组,那么您就可以使用positional $ operator

Ideas.update({
  _id: X,
  "relations.relation": Y
}, {
  $set: {
    "relations.$.unconfirmed": false
  }
});