Mongodb 脚本位置运算符



我正在考虑更新 mongodb 文档中的数组对象,如下所示

var cursor = db.coll.find();
cursor.forEach(function(x){
  if(x.arr) {
    x.arr.forEach(function(y,i){
      if(y.field1) {
        db.coll.update({_id: x._id}, {$set:{'arr.'+i+'.field1': 'x' + y.field1}})
      }
    })
  }
})

我在{$set:{'arr.'+i+'.field1': 'x' + y.field1}}收到语法错误 有解决方法吗?

您正在尝试在初始化时将值动态分配给 JavaScript 对象的键。只需单独创建它并在后面的步骤中分配密钥即可。

var cursor = db.coll.find();
cursor.forEach(function(x){
  if(x.arr) {
    x.arr.forEach(function(y,i){
      if(y.field1) {
        var setStmt = {};
        setStmt['arr.'+i+'.field1'] = 'x' + y.field1;
        db.coll.update({_id: x._id}, {$set: setStmt});
      }
    })
  }
})

相关内容

  • 没有找到相关文章

最新更新