【问题标题】:Replace object from array inside a Meteor Collection从流星集合中的数组替换对象
【发布时间】:2015-01-10 17:24:36
【问题描述】:

我有一个名为 Tiers 的集合,具有此架构:

{
  "_id" : "u7fF2gjig3AXsnYBb",
  "prizes" : [
    {
      "_id" : "8h5b4QCd4fj7n7yek",
      "pos" : 1,
      "prize" : "prize 0"
    },
    {
      "_id" : "ZXK5is9ExpdAJJqJ5",
      "pos" : 2,
      "prize" : "prize 1"
    },
    {
      "_id" : "eWdbxQJ5oaM2xnX8v",
      "pos" : 4,
      "prize" : "prize 2"
    }
  ]
}

如何用 pos 字段替换 Prizes 数组中的对象?

我正在尝试这个:

var pos = 4;
var newPrize = {_id: Random.id(), pos: pos, prize: prize};

Tiers.update({_id: tierId}, {
  $pull: {prizes: {pos: pos}},
  $push: {prizes: newPrize}
});

但我得到了这个例外:MongoError: Field name duplication not allowed with modifiers

【问题讨论】:

    标签: mongodb meteor


    【解决方案1】:

    这可能是你的答案

    db.test.update(
    {
        _id : tierId,
        'prizes.pos': 1
    },
    {
        $set : {'prizes.$': newPrize}
    }
    )
    

    【讨论】:

      猜你喜欢
      • 2019-07-22
      • 2016-08-08
      • 2018-11-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-06-04
      • 1970-01-01
      • 2019-08-30
      相关资源
      最近更新 更多