这是我的年度预算集合中的文件
{
"_id" : ObjectId("5b8954cf3887ee089b4d7310"),
"year" : 2018,
"categories" : [
{
"_id" : ObjectId("5b8954cf3887ee089b4d7312"),
"name" : "Logistics",
"amount" : 1500
},
{
"_id" : ObjectId("5b8954cf3887ee089b4d7311"),
"name" : "Finance",
"amount" : 23030
}
],
"__v" : 0
}
我想做的是将另一个对象附加到Categories数组。以下是我对此的明确补丁要求:
app.patch('/annualBudgets/:year' , (req, res) => {
Budgets.update({year: parseInt(req.body.year)}, {'$set' : {
'categories.$.name' : req.body.name,
'categories.$.amount' : req.body.amount
}}, function(err, docs) {
if (err) {
throw err
}
res.send(docs).status(200);
})
})
我将以下请求传递给
{
"name" : "Help",
"Amount": 122312
}
我无法弄清楚补丁请求出了什么问题。感谢您的帮助。
答案 0 :(得分:0)
由于您要更新数组元素,因此可以使用$ push方法
app.patch('/annualBudgets/:year' , (req, res) => {
Budgets.update({year: parseInt(req.body.year)}, {'$push' : {categories : {
name : req.body.name,
amount : req.body.amount
}}}, function(err, docs) {
if (err) {
throw err
}
res.send(docs).status(200);
})
})