【发布时间】:2019-01-19 07:10:32
【问题描述】:
我在使用 TypeORM 和 MongoDB。几个月以来我一直在使用这个库,但我遇到了一个不常见的问题。
当我保存实体时,有时我的数据会更新,有时不会。完全相同的请求第一次不起作用,但第二次会起作用。我使用 save() 进行更新和插入。插入时一切正常。
这是我的代码(带有 NestJS 的 TypeORM):
==> 实体
@Entity()
export class User {
@ObjectIdColumn()
@Type(() => String)
id: ObjectID;
@Column()
address: string;
}
==> DTO
export class UpdateUserDto {
@IsNotEmpty({ message: () => translate('validation.is_not_empty') })
address: string;
}
==> 控制器
@Put(':userId')
@Authentified()
async update(@Param('userId') userId, @Body() dto: UpdateUserDto) {
return await this.usersService.update(userId, dto);
}
==> 用户服务:
import { MongoRepository } from 'typeorm';
...
private readonly userRepository: MongoRepository<User>
...
async update(userId: string, dto: UpdateUserDto): Promise<User> {
const user = await this.userRepository.findOneOrFail(userId);
user.address = dto.address;
return await this.userRepository.save(user);
}
当我在 save() 之后 find() 时,我的用户地址没有更新,而我从 Mongo 收到了 modifiedCount 1。 如果我重复请求,这一次它正在工作......
有什么想法吗?
【问题讨论】:
标签: node.js mongodb nestjs typeorm