当前位置: 首页 > 知识库问答 >
问题:

TypeORM MongoDB存储库不会每次都保存

孙琨
2023-03-14

我在努力打字

当我保存一个实体时,有时我的数据会更新,有时不会。完全相同的请求第一次不会起作用,但第二次会起作用。我使用保存()更新和插入。插入时一切都好。

以下是我的代码(使用NestJS键入表单):

==

@Entity()
export class User {
  @ObjectIdColumn()
  @Type(() => String)
  id: ObjectID;

  @Column()
  address: string;
}

==

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()之后找到()时,我的用户地址不会更新,而我从Mongo收到了modifiedCount 1。如果我重复这个请求,这一次它是有效的。。。

有什么想法吗?

共有1个答案

和谦
2023-03-14

我终于明白了,几个月后...

在我的nodejsauth中间件中,我记录了一个时间戳来存储用户最后一次连接到API的时间。这意味着我使用了save()两次:在中间件和我的服务中!有时它是有效的,因为保存时间戳足够快,可以让我的服务保存更新,有时则不行。我没有使用save(),而是将updateOne()与$set一起使用,不再存在并发问题。

我回答自己的问题,希望这对其他人有帮助!

 类似资料:
  • 问题内容: 我正在编写一个PHP脚本(它也使用linux bash命令),将通过执行以下操作在测试用例中运行: 我正在使用PostgreSQL数据库(8.4.2)… 1.)创建一个数据库2.)修改数据库3.)存储数据库的数据库转储(pg_dump) 4.)通过执行步骤1.)和2.),进行回归测试,然后进行另一个数据库转储,并将其(diff)与步骤3.)中的原始数据库转储进行比较。 但是,我发现pg

  • 我需要生成加密安全、随机和唯一的字符串,每个字符串实际上都将用作访问令牌。为此,我计划使用Java的类。但是,我不确定SecureRandom是否保证唯一性。换句话说,SecureRandom在生成的每一次都会产生不同的值吗? 用值(即)创建实例似乎可以工作。但是,我不确定。此外,这个答案指出种子既不安全也不可移植。种子值符合我的目的吗? 如果你有其他建议,我也想听听。

  • 问题内容: 我正在使用 PhoneGap 开发移动应用程序,并且必须 从另一个项目 访问某些 服务 。我正在使用 jquery-2.0.0.js 和 jquery-mobile-1.3.2.js 。 这个ajax调用每次都会失败。在 config.xml中, 我有以下几行: 我可能在哪里错了! 问题答案: 问题在于您的phonegap应用程序正在从非网络服务器请求本地文件。本地文件交付时没有HTT

  • 在我的构造函数中,我可能不得不缩短它。虽然我第一次尝试就开始工作了。记录cat消息: 05-08 19:09:46.035:E/dalvikvm-heap(420):28字节分配内存不足。

  • 我在使用JPA时遇到了一些困难。我没有得到任何异常,但我不能保存任何东西到数据库。我从Hibernate到Jpa,在那里一切都工作得很好。下面是我的文件 Application.Properties: 存储库: 服务: 我在提交表单时得到了200的响应,但在数据库中找不到数据

  • 我有以下课程: DBEntity.java 使用者JAVA 用户服务。JAVA UserRepository.java