K
K
klinnov2016-08-15 15:00:15
NoSQL
klinnov, 2016-08-15 15:00:15

How to properly structure the database?

Работаю с NodeJS и Mongo. Не могу привыкнуть к не реляционной БД после реляционной.
Один из принципов не реляционной БД стоит в том, что в одном документе должно храниться все что нам необходимо для работы на одном экране. Ну то есть если у нас есть посты то в документе должна быть вся информация о посте, вместе например с автором поста.
То есть такая структура:
- Название поста
- описание
- Имя автора
И здесь ступор. А что если автор изменил свое имя? То есть у него есть еще своя коллекция данных, например:
- ID
- имя
- Почта и т.д.
Получается делать отношение пост - ID пользователя это не верно. Но как тогда при просмотре поста получить верное имя юзера а не старое?

Answer the question

In order to leave comments, you need to log in

2 answer(s)
M
Matvey Safronov, 2016-08-15
@klinnov

The easiest option is to create a new field in posts, for example "user_id", which stores the unique _id of the user who created this post, and, for example, pull out user data by aggregation, additionally working with a filter:

db.posts.aggregate([
   {
      $lookup: {
          from: 'user',
          localField: 'user_id',
          foreignField: '_id',
          as: '_user'
       }
   }
]);

Or create a 'posts' field in the user's collection, which would be an array and store the _id of the posts. However, in this case, it is worth remembering the limit on the size of the collection.

A
Artemy, 2016-08-15
@MetaAbstract

Either SQL+Join or NoSQL with join emulation or duplication and data synchronization. In general Mongo has https://docs.mongodb.com/manual/reference/operator...

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question