Node.js 如何使用Mongoose更新MongoDB集合中数组内的对象

Node.js 如何使用Mongoose更新MongoDB集合中数组内的对象,node.js,mongodb,express,mongoose,Node.js,Mongodb,Express,Mongoose,这是一个费用跟踪应用程序 我正在尝试创建一个更新路由,用户可以在其中更新费用的值 例如,我想将第一个费用名称从Bike更新为Bike-Rental&金额从250更新为500 同样,创建一个通用端点,用户可以在必要时更新任何费用 这里是我的快速获取路线的快照&我要填充的补丁路线 整个集合的ObjectID 607BB07E1EBB63A3033AF15将从前端发送到后端 我使用的是Express,Mongoose。您可以对创建的模型运行更新,如下所示: const filter = {_id

这是一个费用跟踪应用程序

我正在尝试创建一个更新路由,用户可以在其中更新费用的值

例如,我想将第一个费用名称从Bike更新为Bike-Rental&金额从250更新为500

同样,创建一个通用端点,用户可以在必要时更新任何费用

这里是我的快速获取路线的快照&我要填充的补丁路线

整个集合的ObjectID 607BB07E1EBB63A3033AF15将从前端发送到后端


我使用的是Express,Mongoose。

您可以对创建的模型运行更新,如下所示:

const filter = {_id :"(*User Id Here*)", "Expenses._id": "(*Expense Id Here*)"}; //check the type of _id if this doesn't work
const query = {$set: {"Expenses.$.Name" : "value"}};

User.update(filter, query);
或者


类似地,您可以对对象中的任何键执行此操作,前提是该键存在于该对象中。现在,这将检查上面的查询是否正在执行,但是数据库中没有更新。现在检查只是更新了答案。
User.update({_id :"ObjectId(pass id)", "Expense._id" : ObjectId'pass id'}, {'$set': {'Expenses.$.Name': 'name update'});