Javascript 如何通过查找parentid和child id节点更新数组中的字段

Javascript 如何通过查找parentid和child id节点更新数组中的字段,javascript,express,mongoose,Javascript,Express,Mongoose,此处显示错误TypeError:User.save不是一个函数 const express=require(“express”); require(“dotenv”).config(“...env”); const User=require(“../models/User”); const auth=require(“../middleware/auth”); const ObjectId=require(“mongoose”).Types.ObjectId; const HttpStatus=

此处显示错误
TypeError:User.save不是一个函数

const express=require(“express”);
require(“dotenv”).config(“...env”);
const User=require(“../models/User”);
const auth=require(“../middleware/auth”);
const ObjectId=require(“mongoose”).Types.ObjectId;
const HttpStatus=require(“http状态”);
router.post(“/admin/update/:userid/:issueid”),异步(req,res)=>{
var状态=请求主体状态;
var userId=req.params.userId;
var issueId=req.params.issueId;
if(isNull(issueId&userId)| |!ObjectId.isValid(issueId&userId)){
返回稀土元素(
物件,
{消息:“请提供有效的issueId和userID”},
HttpStatus.BAD_请求
);
}
var found=User.find({
$and:[{“User.\u id”:userId},{“User.issues.\u id”:issueId}]
});
如果(!找到){
返回ReE(res,“未找到用户或问题”,400);
}
found.status=状态;
让UpdateUser;
[err,updateUser]=等待(user.save());
如果(错误){
返回ReE(res,err,500);
}
ReS(ReS,“问题更新”,HttpStatus.OK);
});

类型错误:User.save不是一个函数

您没有以User.save的身份编写任何函数,您尝试调用该函数。

  [err, updatedUser] = await to(user.save());

这就是错误的原因

类型错误:User.save不是一个函数

您没有以User.save的身份编写任何函数,您尝试调用该函数。

  [err, updatedUser] = await to(user.save());

这就是错误的原因

您需要使用
found.save()
而不是
user.save()

这种类型的更新也可以使用一次性完成

router.post(“/admin/update/:userid/:issueid”),异步(req,res)=>{
var状态=请求主体状态;
var userId=req.params.userId;
var issueId=req.params.issueId;
if(isNull(issueId&userId)| |!ObjectId.isValid(issueId&userId)){
返回稀土元素(
物件,
{消息:“请提供有效的issueId和userID”},
HttpStatus.BAD_请求
);
}
让UpdateUser;
[err,updateUser]=等待(
User.findByIdAndUpdate(
用户ID,
{$inc:{“问题.$[inner].status:状态},
{arrayFilters:[{“inner.\u id”:issueId}],new:true}
)
);
如果(错误){
返回ReE(res,err,500);
}
如果(!updateUser){
返回ReE(res,“未找到用户或问题”,400);
}
ReS(ReS,“问题更新”,HttpStatus.OK);
});

您需要使用
found.save()
而不是
user.save()

这种类型的更新也可以使用一次性完成

router.post(“/admin/update/:userid/:issueid”),异步(req,res)=>{
var状态=请求主体状态;
var userId=req.params.userId;
var issueId=req.params.issueId;
if(isNull(issueId&userId)| |!ObjectId.isValid(issueId&userId)){
返回稀土元素(
物件,
{消息:“请提供有效的issueId和userID”},
HttpStatus.BAD_请求
);
}
让UpdateUser;
[err,updateUser]=等待(
User.findByIdAndUpdate(
用户ID,
{$inc:{“问题.$[inner].status:状态},
{arrayFilters:[{“inner.\u id”:issueId}],new:true}
)
);
如果(错误){
返回ReE(res,err,500);
}
如果(!updateUser){
返回ReE(res,“未找到用户或问题”,400);
}
ReS(ReS,“问题更新”,HttpStatus.OK);
});