Всем привет! Ребят, подскажите, мне нужно реализовать историю редактирования профиля

и кроме даты и имени оператора который редактировал, нужно сохранять наименование полей которые были изменены

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

11 ответов

25 просмотров

Можно для каждого свойства сделать массив изменений

Aleksandr Cheprasov- Автор вопроса
Сергей
screenshot Можно для каждого свойства сделать массив изменени...

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

Aleksandr Cheprasov
Тут вопрос еще больше в том, как вычислять изменен...

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

Aleksandr Cheprasov- Автор вопроса
Сергей
Можно мидлваре написать что бы сравнивать актуальн...

Да, скорее всего так и буду делать, жалко монга не возвращает поля которые были перезаписаны(

Я настройки профиля писал в массив. С тайм степом и применял последние.

Вы можете использовать change stream: например, в документ добавьте поля last_updated_at и last_updated_by. Обновляйте документ, устанавливая поля last_updated_at и last_updated_by в дату изменения и оператора который их внёс, после чего в change stream попадут только изменившиеся поля, плюс _id изменённого документа, которые вы можете дальше сохранить в коллекцию истории изменений

yopp 💉💉
Вы можете использовать change stream: например, в ...

ченж стрим если я правильно помню, только для реплики, возможно для шард

yopp 💉💉
Single-node replica set тоже подходит

Привет! А не подскажешь, есть ли тесты производительности монги между версиями кроме https://medium.com/@hartator/mongodb-4-2-vs-4-0-3-6-3-4-and-3-2-benchmarks-ee96a09ef231 ?

Ivan EKbfh
Привет! А не подскажешь, есть ли тесты производите...

Не встречал. В среднем все бенчмарки ничего не показывают, так как редко являются отражением какой-то реальной нагрузки. Этот тест сделан совсем плохо, его результаты некорректны. 0) Нет информации об конфигурации тестового стенда, в частности настроек сервера и клиента монги. 1) Нет «прогрева», ни руби, ни монги 2) Используется однократный вызов Benchmark.measure, а значит результаты без учёта шума 3) Вызовы в основном измеряют время которое руби и драйвер тратят на сериализацию/де-сереализацию данных из сокета, а не монгу 🙂 Возможно разница на графике связана с разницой в протоколе 4) Тест-кейсы сделаны некорректно и не покрывают ни одного реального кейса Если сильно натянуть сову на глобус, эти цифры показывают априори некорректные цифры для случая когда монга используется как простой key-value сторадж с disk persistency

Похожие вопросы

Обсуждают сегодня

Добрый вечер, Пока не совсем понимаю как наладить общение между телеграм ботом и ПО для работы с сим боксом. По самому боту так понял: - Нужен некий баланс, который можно поп...
Magic
6
Объясните, пожалуйста, почему компилятор ругается на использование в условии неинициализированной переменной: int x; Task.Run(async () => { x = await somefunc(); }).Wait...
Александр
5
Всем привет. Ребята, подскажите, пожалуйста. у ботов есть ограничение на отправку сообщений - 30 сообщений в секунду, эти ограничения накладываются на все сообщения? или на со...
Artem Stormageddon
4
1. https://www.kaggle.com/code/ahmadrezagholami2001/housing-estimation-linear-regression 2. https://www.kaggle.com/code/ahmadrezagholami2001/uncovering-quality-in-wines-logis...
Ahmadreza
1
Блин, ребята, сори за тупые вопросы. А можно ли как-то открыть вебапку по нажатию на кнопку в меню(которое появляется слева, команды)?
Artem Stormageddon
3
Коллеги, может знает кто, можно ли цвет бейджа счётчика в BackendMenu менять без бубнов?
Alex Blaze
3
а плаксы из-под питона умеют только в комфортных условиях что-то выдавить из себя?)
Lencore
9
Но, может, есть уже проверенная? Наши требования такие: 1. Сообщения должны приходить из Инста в CRM оду 2. Должна быть возможность подключить несколько экаунтов Инстаграм. Р...
Alexander Sharoiko MSE / Александр Шаройко
13
Привет!) Кто как юзает переменные в строках?) Чисто ради интереса Вот так: echo "У меня {$bananasAmount} бананов"; Или вот так: echo "У меня ${bananasAmount} бананов";
Виталий
3
разработчик ботов скидывает портфолио, боты которые он уже создал. А вот как узнать что это именно он их создал?
Gosudar
4
Карта сайта