我的数据库中有学生证件。每个文档都是一名学生,并且具有字段amountOwed
和tuition
。
我正在尝试更新使amountOwed
等于amountOwed + tuition.
的当前值
我已经考虑过使用 .find
查询来获取所有学生文档,遍历每个文档并更新数据库。
我还研究了mongo文档中的 $set(aggregation)
和 $addFields(aggregation)
,但是我不确定是否可以使用这是我想做的。
示例文档:
{"studentName" : "Student1",
"amountOwed" : 100,
"tuition" : 100
},
{"studentName" : "Student2",
"amountOwed" : 0,
"tuition" : 500
}
输出应为:
{"studentName" : "Student1",
"amountOwed" : 200,
"tuition" : 100
},
{"studentName" : "Student2",
"amountOwed" : 500,
"tuition" : 500
}
在一个数据库查询中有没有办法做到这一切?
也许使用updateMany
?
答案 0 :(得分:0)
要添加值,可以使用Mongo Aggregation Query的$add表达式。
尝试使用查询:
db.collection.aggregate([
{
$project: {
studentName: 1,
tuition: 1,
_id: 0,
amountOwed: {
$add: [
"$amountOwed",
"$tuition"
]
}
}
}
])