Доброго времени суток.
В учебных целях пилю урезанный аналог инстаграма, встал вопрос о правильном проектировании базы данных.
У меня есть модель User:
const mongoose = require('mongoose');
const UserSchema = new mongoose.Schema({
login: {
type: String,
lowercase: true,
trim: true,
required: true,
unique: true
},
password: {
type: String,
required: true
},
cookie: String,
regDate: { type: Date, default: Date.now },
avatarPath: String,
closed: {
type: Boolean,
default: false
},
email: { type: String, required: true },
followersCount: Number,
followingCount: Number,
followers: [
{
type: mongoose.Schema.Types.ObjectId,
ref: 'User'
}
],
following: [
{
type: mongoose.Schema.Types.ObjectId,
ref: 'User'
}
]
}, { versionKey: false });
module.exports = mongoose.model('User', UserSchema);
У каждого пользователя есть свои посты, как в инстаграме, схема поста выглядит следующим образом
const mongoose = require('mongoose');
const Post = new mongoose.Schema({
imgLink: String,
likes: {type: Number, default: 0},
commentsCount: {type: Number, default: 0},
comments: [{
type: String,
ref: 'User',
date: Date.now,
comment: String
}]
})
module.exports = Post;
Вопрос о том, как связать пользователя с постами, словом, чтобы у каждого пользователя в базе данных был массив объектов с постами, а у постов массив объектов с комментариями.