我正在尝试使用 mongoose 进行 MongoDB 事务,但在每次创建数据库并插入用户和公司的请求时,我都会收到以下错误
“由于待处理的集合目录更改,无法读取快照;请重试该操作。快照时间戳为 Timestamp(1584451745, 1)。集合最小值为 Timestamp(1584451753, 1)”
重试请求后,它起作用了。但是,当我发送新请求来创建新数据库并插入用户和公司时,我收到相同的错误。我总是需要重试请求才能成功插入数据。
const session = await mongoose.startSession();
session.startTransaction();
try {
await db.createCollection("users");
await db.createCollection("companies");
const savedUser = await UserModel({
...userDetails,
}).save({ session });
const company = await new CompanyModel({
...companyDetails
}).save({ session });
await session.commitTransaction();
return { message: "User Added Successfully" };
} catch (err) {
error("Transaction Error", err);
await session.abortTransaction();
throw err;
} finally {
session.endSession();
}
Run Code Online (Sandbox Code Playgroud)
知道我在这里缺少什么吗?