首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用addition更新文档的MongoQuery

使用addition更新文档的MongoQuery
EN

Stack Overflow用户
提问于 2021-04-02 00:47:08
回答 2查看 28关注 0票数 1

我在学生收藏中有以下文档:

代码语言:javascript
复制
{
"uid": 1,
"eng": 70
}

现在我想在eng字段中添加10,并希望结果为80。为此,我使用以下查询:

代码语言:javascript
复制
db.getCollection('student').aggregate([{$match:{uid:1}},{$set:{eng:{$sum:10}}}])

但它不起作用。那么,如何将字段中的任何数字添加到所需的输出中呢?是MongoDB中的任何附加查询。帮帮我

EN

回答 2

Stack Overflow用户

发布于 2021-04-02 00:49:49

解决方案#1:将sum设置为与eng相同的字段。

代码语言:javascript
复制
db.student.aggregate([
    { $match: { uid: 1 } },
    {
        $set: {
            eng: { $add: ["$eng", 10] }        // $sum: ["$eng", 10] Also works;)
        }
    }
])

输出:

代码语言:javascript
复制
{
    "_id" : ObjectId("6065f94abb72032a689ed61d"),
    "uid" : 1,
    "eng" : 80
}

解决方案#2:将sum设置为不同的字段result

使用$addFields

  1. 添加result字段。使用$add
  2. 将10添加到eng并将其存储在result.

代码语言:javascript
复制
db.student.aggregate([
    { $match: { uid: 1 } }, 
    { 
        $addFields: { 
            result: { $add: ["$eng", 10] }    
        } 
    }
])

输出:

代码语言:javascript
复制
{
    "_id" : ObjectId("6065f94abb72032a689ed61d"),
    "uid" : 1,
    "eng" : 70,
    "result" : 80
}
票数 1
EN

Stack Overflow用户

发布于 2021-04-02 00:50:23

我建议在这里使用$inc运算符:

代码语言:javascript
复制
db.getCollection('student').update(
    { uid: 1 },
    { $inc: { eng: 10 } }
)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66908539

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档