пн go запросы не выполняются по порядку - PullRequest
0 голосов
/ 28 апреля 2020

У меня есть класс книги -

public class Book {
    @Id
    private int bookId;
    private String name;
    private String authorName;
 }

Мой класс репозитория расширяется mongoRepository

Ниже приведены шаги операций, которые я выполняю -

  1. Я используя mongoTemplate.aggregate для агрегирования некоторых данных в классе Book
  2. Затем я удаляю книги по bookId с использованием bookRepository.deleteById ()
  3. , затем сохраняю результат агрегирования в bookRepository с помощью bookRepository.saveAll ( )
  4. затем на следующем шаге я использую класс книги для агрегирования, и моя агрегация происходит из класса книги, используя mongoTemplate.aggregate ().
  5. удалить запись для перикулярного bookId из новый репозиторий классов с именем libraryRepository с помощью libraryRepository.deleteByBookId ()
  6. с сохранением результата агрегирования в libraryRepostiry с использованием libraryRepository.saveAll ()

И ниже приведены мои результаты -

  1. шаги с 1 по 3 работают нормально, и я вижу результат в db
  2. , шаг 4 не выдает никакой ошибки, и w Когда я попытался запустить его в robo3T вручную, он отлично работает
  3. после шага 6, ожидается, что он увидит документ, содержащий агрегированные данные в коллекции библиотеки, но иногда это работает, и иногда сам документ удаляется. .

Насколько я понимаю, это может произойти только тогда, когда данные из коллекции Библиотеки были удалены, и мы не получаем никакого результата от агрегирования на шаге 4, поэтому мы ничего не сохраняем в коллекции, которая является почему документ удаляется. И в случае неудачи я не вижу ни одного журнала сохранения данных в сбор, но когда он проходит, я вижу эти строки, так что каким-то образом агрегация дает нулевое значение в качестве результата. Но этого не должно происходить, потому что в моем агрегации я выполняю поиск из коллекции Book в другую коллекцию и добавляю некоторые поля из этой коллекции. Если в Book есть данные, то это объединение не даст нулевого результата, что в моем случае верно, так как в Book есть данные.

Единственное, о чем я могу подумать, что, возможно, нарушил его, это шаг 3, данные были удалены в Коллекции книг, и пока мы хранили данные в Коллекции книг, вторая агрегация, которая находится на шаге 4, выполнялась до завершения Шаг 3. Возможно ли это? Есть ли что-нибудь еще, что могло бы сломать его и какое-либо решение для него?

Я использую версию оболочки MongoDB v4.2.3.

...