Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mongodb 替换流星集合中阵列中的对象_Mongodb_Meteor - Fatal编程技术网

Mongodb 替换流星集合中阵列中的对象

Mongodb 替换流星集合中阵列中的对象,mongodb,meteor,Mongodb,Meteor,我有一个名为Tiers的集合,该集合具有以下架构: { "_id" : "u7fF2gjig3AXsnYBb", "prizes" : [ { "_id" : "8h5b4QCd4fj7n7yek", "pos" : 1, "prize" : "prize 0" }, { "_id" : "ZXK5is9ExpdAJJqJ5", "pos" : 2, "prize" : "prize 1"

我有一个名为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字段替换奖品数组中的对象

我正在尝试这样做:

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

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

但是我得到了一个例外:
MongoError:fieldname不允许使用修饰符重复

这可能是您的答案

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