Мангуста Субдоки подход

Только что закончил читать о поддочках в 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);

Итак... Я знаю, что есть много кода, но я должен быть уверен, что выбрал правильный путь в начале. Все дело в том, что я хочу, чтобы пользователи могли оставлять комментарии к любой статье на моем сайте. Пользователь может ответить на любой другой комментарий пользователя (различить в поле зрения). Это сработает? Рефсы хороши? Или я что-то упустил?

0 ответов

Другие вопросы по тегам