Эта новая функция Change Feed, предоставляемая DocumentDB, довольно крутая. Однако в документации указано:DocumentDB Change Feed - Как просмотреть все изменения в документе
Каждое изменение документа появляется только один раз в ленте изменения. Только последнее изменение для данного документа включено в журнал изменений. Промежуточные изменения могут быть недоступны.
В принципе, если документ перешел из ревизии A-> B-> C, когда подана лента изменений, мы собираемся получить «C.», - У меня есть ситуация, когда я хочу видеть «А» и «В».
Я знаю несколько существующих шаблонов, чтобы решить эту проблему, но я действительно надеялся использовать эту новую функцию Feed Feed. Я надеялся, что он вернет A, B и C.
Является ли намерение этой функции иметь «рабочих» опрос службы очень часто? Очевидно, что чем чаще опроса работников, тем менее вероятно, что они должны пропустить пересмотр документа. Тем не менее, я бы не хотел отрицательно влиять на производительность коллекции в результате.
Просто думая вслух, вы не можете использовать триггеры DocumentDB для этой цели - https://docs.microsoft.ком/ан-нас/лазурь/documentdb/documentdb-программирование # а-idtriggera-базы-триггеров? У вас может быть триггерный огонь после каждого обновления документа, который будет иметь код для идентификации изменения и внесения изменений в журнал изменений. –
Правильно, триггер может позволить мне захватить diff. Затем я бы включил изменения в самом документе или в отдельный документ. Либо достаточно распространенные шаблоны в зависимости от ожидаемого количества обновлений. Тем не менее, у меня есть внешняя система, которая должна видеть ВСЕ версии, для целей хранения данных. Это проблема только с триггером + sproc. – Jmoney38
Но для чьего-либо пособия, читая это ... Было бы возможно 1) использовать триггер для захвата различий, 2) внедрить различия в документе, 3) обнаружить обновленный документ в Change Feed, 4) обработать ситуация, в которой вы уже «обработали» обновления 0- [i-1] и 5) обрабатываете ситуацию, в которой вы видите более одного «нового» обновления на одной и той же итерации. - Это просто обслуживание + кодирование. Я надеялся, что с момента последнего звонка на «Изменить канал» у меня есть поток ВСЕХ обновлений для документа. – Jmoney38