Мангуста Субдоки подход
Только что закончил читать о поддочках в mongodb. Вот что у меня есть:
СХЕМА ПОЛЬЗОВАТЕЛЯ
const userSchema = new Schema({
userID: String,
username: String,
rank: {
type: Schema.Types.ObjectId,
ref: ranks
},
image: String,
platform: String,
registeredAt: {
type: Date,
default: new Date()
}
});
mongoose.model('users', userSchema);
RANK SCHEMA
const rankSchema = new Schema({
rank: String
});
mongoose.model('ranks', rankSchema);
СТАТЬЯ СХЕМА
const articleSchema = new Schema({
author: {
type: Schema.Types.ObjectId,
ref: users
},
addDate: {
type: Date,
default: new Date()
},
content: String,
describe: String,
img: String,
title: String,
comments: [{
type: Schema.Types.ObjectId,
ref: comments
}]
});
mongoose.model('articles', articleSchema);
КОММЕНТАРИЙ СХЕМА
const commentSchema = new Schema({
author: {
type: Schema.Types.ObjectId,
ref: users
},
addDate: {
type: Date,
default: new Date()
},
content: String,
answersTo: [{
type: Schema.Types.ObjectId,
ref: answersComment
}]
article: {
type: Schema.Types.ObjectId,
ref: articles
}
});
mongoose.model('comments', commentSchema);
СХЕМА ANSWER_TO_COMMENT
const commentAnsSchema = new Schema({
author: {
type: Schema.Types.ObjectId,
ref: users
},
originalCommentID: {
type: Schema.Types.ObjectId,
ref: comments
},
addDate: {
type: Date,
default: new Date()
},
content: String,
});
mongoose.model('answersComment', commentAnsSchema);
Итак... Я знаю, что есть много кода, но я должен быть уверен, что выбрал правильный путь в начале. Все дело в том, что я хочу, чтобы пользователи могли оставлять комментарии к любой статье на моем сайте. Пользователь может ответить на любой другой комментарий пользователя (различить в поле зрения). Это сработает? Рефсы хороши? Или я что-то упустил?