Как правильно сформировать структуру БД?
Самый простой вариант - завести новое поле в постах, например "user_id", хранящее уникальный _id пользователя, создавшего этот пост, и например агрегацией вытаскивать данные пользователя, дополнительно поработав фильтром:db.posts.aggregate([
   {
      $lookup: {
          from: 'user',
          localField: 'user_id',
          foreignField: '_id',
          as: '_user'
       }
   }
]);
Либо в коллекции пользователя завести поле 'posts', которое являлось бы массивом, и хранило _id постов. Однако в таком случае стоит помнить о лимите на размер коллекции.
Либо SQL+Join, либо NoSQL с эмуляцией join или дублированием и синхронизацией данных.  В целом в Mongo есть https://docs.mongodb.com/manual/reference/operator...