Трудно предоставить вам реальное решение вашей проблемы, так как разработка структуры базы данных NoSQL зависит от того, как вы хотите получить доступ к вашим данным. Вы можете хранить заказы как вложенные / встроенные документы в пользовательской модели или хранить их в отдельной коллекции. В первом случае у вас будут все данные в одном запросе, но вы не сможете запрашивать и получать заказы, которые соответствуют определенным критериям, поскольку вы получите все заказы, включая те, которые соответствуют. И тогда вам нужно будет отфильтровать их. Или вы можете использовать агрегацию, чтобы получить именно то, что вам нужно.
Тем не менее, есть ограничение, которое нужно иметь в виду. Документ MongoDB имеет ограничение размера - 16 мегабайт . Поскольку у пользователей может быть очень много заказов, вы можете наверняка достичь предельного размера документа для некоторых пользователей. Агрегация также имеет ограничение - Стадии конвейера имеют ограничение в 100 мегабайт RAMe , но вы можете переопределить его.
Наличие заказов в отдельной коллекции потребует от вас отдельной загрузки их для пользователей. Хотя это еще один запрос, он даст вам больше гибкости с точки зрения того, как вы их запрашиваете.
Затем, конечно, операции создания / обновления также выполняются по-разному для обоих случаев.
Я бы посоветовал вам сначала тщательно разработать приложение - какие данные вам нужны и где вы их покажете, как вы их создаете / обновляете. Это даст вам лучшую идею, и есть вероятность, что реляционная БД станет лучшим выбором для того, что вам нужно (хотя и не обязательно).