Как правильно связать два объекта в Mongoose (MongoDB)?
Во первых:
user: user._id - сохранять надо не сам айди в строке, а mongoose ObjectID
Так гласит схема "user: { type: mongoose.Schema.Types.ObjectId, ref: 'User' }"
Но mongoose немножко умный, поэтому можно в user вставлять самого юзера полученного при запросе из базы, а mongoose сам добавит корректый ObjectID в поле.
Важно, чтобы user был именно mongoose объектом со всеми методами, а не очищенный plainobject.
Далее в монго нету foreign key, поэтому такие схемы как выше не желательны. Где юзер ссылается на стори, а стори на юзера. Получается при любых операциях со стори, надо апдейтить юзера и обратно. А это 2 запроса.
Тут либо в user пишется массив story либо, либо каждой story присваивается создатель.
Т.е либо родитель имеет инфу о ребенке, либо ребенок о родителе, НО не то и другое вместе.
Какой способ лучше, зависит от конкретной ситуации, нужно смотреть какая информация и как выводиться чаще.
Я бы предпочел хрнаить в каждой story userid. А user оставить пустым.
Что я делаю не так?
Используешь монго там где не надо.Как правильно сохранять объекты со связями?
Взять реляционную БД. В самом названии есть намёк, что такие БД хорошо подходят для хранения объектов со связями.
Вот какой смысл брать монгу и пытаться построить архитектуру в стиле реляционных БД? Что мешает хранить story в поле документа юзера?