繁体   English   中英

使用带有索引变量的$ set来更新文档[重复]

[英]Using $set with an index variable to update a document [duplicate]

这个问题在这里已有答案:

对于匹配条件_id等于100的文档,以下操作更新tags字段中的值第二个元素(数组索引为1)和rating数组的第一个元素(数组索引为0)中的rating字段。

db.products.update(
   { _id: 100 },
   { $set:
      {
        "tags.1": "rain gear",
        "ratings.0.rating": 2
      }
   }
)

以上是来自mongodb $ set文档的引用,我将如何为索引添加变量,而不是"tags.1"它变为"tags."+index

例如,如果index等于7,则返回"tags.7"的等价物。

这是我的代码:

Users.findOneAndUpdate({'username': post.username}, { 
  $set: {
    "notifications.0": { 
      'id': post._id,  'message': post.message,  'amount': amount 
    } 
  } 
}, function () {})

它工作得很好但只是因为我将0硬编码为索引。 我想用index变量替换硬编码的0

像这样构建查询

var key = "notifications."+index;
var obj = {};
obj[key] = { 'id': post._id, 'message': post.message, 'amount': amount };
Users.findOneAndUpdate({'username': post.username}, { $set: obj }, function () {}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM