Сайт React, Node, Mongodb.
К примеру, есть три страницы с формами.
Получая данные на первой странице, при нажатии на кнопку данные отправляются на сервер, обрабатываются и записываются в бд (создаётся новый документ в коллекции), и происходит переход к следующей странице.
На второй странице так же получаем данные отправляем на сервер и.....
Как добавить данные именно в тот документ который был создан при отправлении данных с первой страницы?
Как за каждым пользователем закрепить документ из коллекции mongodb?
Нашел решение.
Незнаю на сколько правильно, при первом заходе на сайт сохраняется id в session storage, и при создании документа этот id записывается в документ.
Потом при дальнейших добавлениях данных ищем документ по этому id.
Тут больше вопрос во 1, по структуре таблиц БД. Во 2 Отправлять эти формы могут только зарегестрированые пользователи? Во 3 мунгус это не реляционная База Данных, но там есть свои фичи, как все это обойти
1. Структура простая в основном, строки и числа (первые две страницы, немного данных, на последней странице полные данные человека)
2. Нет, без регистрации, просто человек заходит на сайт, на первой странице заполняет форму(в этот момент создаётся документ, который в дальнейшем пополняется) и переходит к следующей странице с формой.
3. Я бы не против возможно рассмотреть другие БД, но хотелось попрактиковаться с этой)
Как за каждым пользователем закрепить документ из коллекции mongodb?
Значит априори нужна регистрация пользователя. например, в кеш добавлять ранд айди, - будет айди пользователя. и отправлять его что в 1 варианте, что и во втором
Эта логика кстати некак БД не касается, а лишь работой с не авторизованимы пользователями.
Если все хранится только в одной коллекции. и они нет проблемы "а как связать одну колецию с другой" - то просто по айди пользователя находить нужную колекцию, и дополнять информацией, что взяли с 2рой формы
Да я склонялся к варианту с регистрацией пользователя, но,
Как за каждым пользователем закрепить документ из коллекции mongodb?
Если закрепить то я имею ввиду не конкретно на все время, а на время заполнения данных на всех страницах. Пользователь заходит на сайт, проходит по всем страницам, заполняет данные, эти данные сохраняются в один документ и все. Если он опять заходит на сайт, то опять по новой все заполняет(опять создаётся новый документ). Суть всего собрать с человека данные в один документ.
А у меня получается заполняю на первой странице, сохраняется в документе, перехожу на следующую страницу эти данные уже сохраняются в новый документ. А мне нужно что бы все данные были в одном.
Мне предложили рассмотреть populate () у монгуста, все попадает в новый документ, а если опять с первой страницы все начинать, то в новый документ сохраняются уже не полные данные.
Мне бы хотя бы понять в каком направлении двигаться или может бд посмотреть другую.
Alex_mos, в чем проблема хранить данные в каком то локальном storage с 1 формы. а на 2рой заполненой форме обьеденять эти данные а потом уже отправлять в колекцию. и потом удалять И подчищать сторедж
Зачем все усложнять.
Lynatik001, и насчёт этого искал информацию, не знаю как лучше все хранить, а как все будет заполнено на всех страницах, записывать в бд. Но не знаю в чем и как лучше все эти данные собирать
Lynatik001, а если к примеру такая реализация, первые две страницы, там немного данных, можно хранить в localStorag и дополнительно задавать id. После второй страницы записывать все в бд. И при переходе и получении данных с третьей искать документ по id который получил пользователь в локальном storage?