前言

当我在使用prisma配合MongoDB来创建数据的时候,发现后端报错了,提示:

Prisma needs to perform transactions, which requires your MongoDB server to be run as a replica set.https://pris.ly/d/mongodb-replica-set

主要原因是因为prisma在创建数据的时候需要使用到事务,但是MongoDB使用事务就需要副本集,副本集类似于一份数据存多份的处理方案。

折腾了好久才搞定,特此分享。

教程

修改配置

首先我们需要找到MongoDB的安装位置,在它的bin目录下有一个配置文件:mongod.cfg

我们打开在,找到被注释的:#replication:

把他修改为:

replication:
  replSetName: rs0

rs0是集群的名字,可以自定义。

修改好后就行保存。

重启MongoDB服务

由于我的是默认安装,MongoDB自己把服务加入到启动计划中了,我需要在windows的服务中进行重启。

win11可以通过任务管理侧边栏找到服务列表,其他的就Win + R 输入:services.msc进入到服务列表。

找到MongoDB的服务,鼠标右键重启一下,让他重新载入配置文件。

初始化副本集

然后我们下载mongosh,官网下载:mongosh

解压到本地后,也是进入bin目录,里面有个mongosh.exe可执行文件,双击打开。

如果你的MongoDB是默认值,端口也没改,用户名密码也没设,直接回车,不然就自己手输地址吧!这都不会可以百度。

进入后我们输入:

use 你的数据库名

比如我的数据库叫 age,那就是use age

进入到对应数据库后,我们进行初始化集群:

rs.initiate()

完事后可以输入:

rs.status()

查看集群状态。

至此基本就好了,我测试创建也是正常的。

分类: Nest.js 标签: prismaMongoDB

评论

全部评论 4

  1. 晴天
    晴天
    Google Chrome Windows 10
    你好,我按照你的方法进行配置,重启服务的时候报错,重启不成功,请问可以请教一下怎么解决吗?
    1. 木灵鱼儿
      木灵鱼儿
      FireFox Windows 10
      @晴天你可以去问问AI
      1. 晴天
        晴天
        Google Chrome Windows 10
        @木灵鱼儿好的,我上午已经解决了,可能是我的mongodb安装的包有问题,我重新安装了一下可以连接上了
        1. 木灵鱼儿
          木灵鱼儿
          FireFox Windows 10
          @晴天好的,我用版本是官方最新版

目录