如何在Nest.js上的MongoDB文档中将元素推送到数组中?

如何在Nest.js上的MongoDB文档中将元素推送到数组中?,mongodb,typescript,mongoose,nestjs,Mongodb,Typescript,Mongoose,Nestjs,提出这个问题我觉得非常愚蠢,但这是我第一次使用Typescript,尤其是Nest.js。我正在使用Nest、MongoDB(通过Mongoose)和Express.js 我有两个模型:用户模型和帖子模型。为此,相关用户应为: import*作为“猫鼬”中的猫鼬; export const UserSchema=new Mongoose.Schema( { 用户名:{type:String,必需:true}, posts:{type:[Mongoose.SchemaTypes.ObjectId]

提出这个问题我觉得非常愚蠢,但这是我第一次使用Typescript,尤其是Nest.js。我正在使用Nest、MongoDB(通过Mongoose)和Express.js

我有两个模型:用户模型和帖子模型。为此,相关用户应为:

import*作为“猫鼬”中的猫鼬;
export const UserSchema=new Mongoose.Schema(
{
用户名:{type:String,必需:true},
posts:{type:[Mongoose.SchemaTypes.ObjectId],ref:'Post'},
favs:{type:[Mongoose.SchemaTypes.ObjectId],ref:'Post'},
},
{
时间戳:对,
},
);
我正在为一个类似Twitter的应用程序制作一个API,用户可以在其中创建帖子并将其添加到收藏夹中。我在学习教程,就像刚接触技术的人一样,但我很难看到如何将新的fav推送到用户的fav。这是迄今为止的用户控制器:

导入{
控制器,
得到,
请求,
物件,
HttpStatus,
放,
没有例外,
Param,
}来自“@nestjs/common”;
从“/user.service”导入{UserService};
从“express”导入{Request,Response};
从“./dto/create user.dto”导入{CreateUserDTO};
@控制器(“用户”)
导出类用户控制器{
构造函数(私有用户服务:用户服务){}
//获取用户
@获取('userfavs/:userID')
异步getCustomer(@Res()Res:Response,@Param('userID')userID:string){
const user=wait this.userService.getUser(userID);
如果(!user)抛出新的NotFoundException('此用户不存在!');
返回res.status(HttpStatus.OK).json({
用户名:user.username,
favs:user.favs,
});
}
@Put('addfav/:favID')
异步更新程序(
@Req()Req:请求,
@Res()Res:Response,
@Param('favID')favID:string,
@Body()createUserDTO:createUserDTO,
) {
const user=wait this.userService.updateUser(req.user.\u id,createUserDTO);
如果(!user)抛出新的NotFoundException('此用户不存在!');
返回res.status(HttpStatus.OK).json({
消息:“Fav已成功添加!”,
});
}
}
以及服务:

从'@nestjs/common'导入{Injectable};
从“猫鼬”导入{Model};
从'@nestjs/mongoose'导入{InjectModel};
从“./interfaces/User.interface”导入{User};
从“./dto/create user.dto”导入{CreateUserDTO};
@可注射()
导出类用户服务{
//为用户创建Mongoose模型
构造函数(@InjectModel('User')私有只读userModel:Model){}
//获取特定用户-这对于检查FAV非常有用
异步getUser(userID:string):承诺{
const user=wait this.userModel
.findById(用户ID)
.populate('favs'))
.exec();
返回用户;
}
//编辑特定用户
异步更新程序(
userID:string,
createUserDTO:createUserDTO,
):承诺{
const updatedUser=等待this.userModel.findByIdAndUpdate(
用户ID,
createUserDTO,
{新:正确},
);
返回UpdateUser;
}
}
在Node.js中,我会这样做:

User.findbyidanddupdate(请求用户id、{
$push:{favs:favId},
})

但在Nest中,DTO让我陷入了困境。

我目前遇到了相同的问题我目前遇到了相同的问题