Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/13.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 MongoQuery使用添加更新文档_Mongodb_Mongodb Query - Fatal编程技术网

Mongodb MongoQuery使用添加更新文档

Mongodb MongoQuery使用添加更新文档,mongodb,mongodb-query,Mongodb,Mongodb Query,我在学生收藏中有以下文件: { "uid": 1, "eng": 70 } 现在我想在eng字段中加10,结果是80。为此,我使用以下查询: db.getCollection('student').aggregate([{$match:{uid:1}},{$set:{eng:{$sum:10}}}]) 但它不起作用。那么,如何将字段中的任何数字添加到所需的输出中呢?是MongoDB中的任何添加查询。请在此帮助我解决方案1:将总和设置为同一字段eng d

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

{
"uid": 1,
"eng": 70
}
现在我想在eng字段中加10,结果是80。为此,我使用以下查询:

db.getCollection('student').aggregate([{$match:{uid:1}},{$set:{eng:{$sum:10}}}])
但它不起作用。那么,如何将字段中的任何数字添加到所需的输出中呢?是MongoDB中的任何添加查询。请在此帮助我解决方案1:将总和设置为同一字段
eng

db.student.aggregate([
{$match:{uid:1}},
{
$set:{
英语:{$add:[“$eng”,10]}/$sum:[“$eng”,10]也可以;)
}
}
])
输出:

{
“_id”:ObjectId(“6065f94abb72032a689ed61d”),
“uid”:1,
“英语”:80
}
解决方案#2:将总和设置为不同的字段
结果

  • 使用添加
    结果
    字段
  • 使用将10添加到
    eng
    并将其存储在
    result
  • db.student.aggregate([
    {$match:{uid:1}},
    { 
    $addFields:{
    结果:{$add:[“$eng”,10]}
    } 
    }
    ])
    
    输出:

    {
    “_id”:ObjectId(“6065f94abb72032a689ed61d”),
    “uid”:1,
    “eng”:70,
    “结果”:80
    }
    
    我建议在此处使用
    $inc
    操作符:

    db.getCollection('student').update(
        { uid: 1 },
        { $inc: { eng: 10 } }
    )
    

    这回答了你的问题吗?有很多类似的问题,@Suraj Dalvi:JFYI,
    .aggregate()
    用于
    读取
    ,但不用于
    写入
    ,在
    .aggregate()
    中只有两个阶段将写入DB(
    $out
    $merge
    )…您正在合并
    .aggregate()
    使用
    积垢操作进行分级
    ,检查以下内容: