让MongoDB支持事务
从MongoDB v4.0开始已经支持事务了,可以用下面代码写事务操作:
const session = db.getMongo().startSession();
session.startTransaction();
try {
// 你的数据库操作
session.commitTransaction();
} catch (error) {
console.error("Transaction failed: ", error);
session.abortTransaction();
} finally {
session.endSession();
}
但是如果MongoDB没有配置副本集,就会报下面这个错误:
Transaction numbers are only allowed on a replica set member or mongos
需要修改mongod.conf文件,加入下面配置:
replication:
replSetName: "rs0"
如果服务还在运行,先关闭服务。
首先,可以使用 ps 命令找到 MongoDB 进程的 PID:
ps aux | grep mongod
找到 MongoDB 进程后,使用 kill 命令停止它:
kill [PID]
然后,重新通过 mongod 命令启动 MongoDB
mongod --config /usr/local/etc/mongod.conf
连接到 MongoDB shell 并初始化副本集:
mongo
rs.initiate()