Транзакции Mongodb - Невозможно прочитать из снимка - PullRequest
0 голосов
/ 17 марта 2020

Я пытаюсь выполнить транзакции MongoDB с mon goose, но при каждом запросе на создание базы данных и вставку пользователя и компании я получаю следующую ошибку

"Невозможно прочитать из снимка из-за в ожидании изменений каталога коллекции; пожалуйста, попробуйте снова выполнить операцию. Отметка времени снимка - это отметка времени (1584451745, 1). Минимум сбора - это отметка времени (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();
}

Есть идеи, что мне здесь не хватает?

...