[英]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.