Как создать вставку для каждого написанного обновления? - PullRequest
0 голосов
/ 14 марта 2019

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

Я рассмотрел возможность подключения к оплогу для асинхронной компиляции контрольного журнала, но это создает различные проблемы и ограничения для моего варианта использования. Таким образом, теперь он работает так, что для каждого написанного документа новый документ «события» вставляется в соответствующую коллекцию аудита.

Это прекрасно работает для отдельных обновлений, но некоторые записи выполняются сразу для нескольких элементов с использованием запроса на обновление и {multi:true}. Они могут потенциально повлиять на тысячи документов.

Мой вопрос заключается в том, как наилучшим образом генерировать соответствующие события для каждого обновления?

Я знаю, что есть различные варианты, такие как итеративный код или массовые операции, но я надеюсь, что есть какой-нибудь умный оператор или метод обратного вызова, который автоматически выдаст вставку для каждого обновления.


  • Я использую v1.4 Mongo PHP Driver
  • Моя версия Mongo сейчас 3.2, но планируется обновление до 4.0.
...