我在学生收藏中有以下文档:
{
"uid": 1,
"eng": 70
}现在我想在eng字段中添加10,并希望结果为80。为此,我使用以下查询:
db.getCollection('student').aggregate([{$match:{uid:1}},{$set:{eng:{$sum:10}}}])但它不起作用。那么,如何将字段中的任何数字添加到所需的输出中呢?是MongoDB中的任何附加查询。帮帮我
发布于 2021-04-02 00:49:49
解决方案#1:将sum设置为与eng相同的字段。
db.student.aggregate([
{ $match: { uid: 1 } },
{
$set: {
eng: { $add: ["$eng", 10] } // $sum: ["$eng", 10] Also works;)
}
}
])输出:
{
"_id" : ObjectId("6065f94abb72032a689ed61d"),
"uid" : 1,
"eng" : 80
}解决方案#2:将sum设置为不同的字段result。
使用$addFields的
result字段。使用$add的eng并将其存储在result.中
db.student.aggregate([
{ $match: { uid: 1 } },
{
$addFields: {
result: { $add: ["$eng", 10] }
}
}
])输出:
{
"_id" : ObjectId("6065f94abb72032a689ed61d"),
"uid" : 1,
"eng" : 70,
"result" : 80
}发布于 2021-04-02 00:50:23
我建议在这里使用$inc运算符:
db.getCollection('student').update(
{ uid: 1 },
{ $inc: { eng: 10 } }
)https://stackoverflow.com/questions/66908539
复制相似问题