Мангуста схема для статьи - PullRequest
2 голосов
/ 17 октября 2019

Я создаю новостной сайт, и у меня есть схема mongoose:

let mongoose = require('mongoose');

let articleSchema = mongoose.Schema({
  image1:{
    type: String,
    required: true
  },
  title:{
    type: String,
    required: true
  },
  author:{
    type: String,
    required: true
  },
  date:{
    type: String,
    required: true
  },
  updated:{
    type: String,
    default: 'not updated'
  },
  title_nd:{
    type: String,
    required: false
  },
  body:{
    type: String,
    required: true
  },
  comments: [commentsSchema],
  likes:{ type:Number, default:0 }
});

let Article = module.exports = mongoose.model('Article', articleSchema);

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

1 Ответ

3 голосов
/ 17 октября 2019

Моделирование отдельной схемы для комментариев не является хорошей идеей, по моему скромному мнению, поскольку это классический случай one to few mapping, который является идеальным вариантом использования для встраивания документа. Чтобы дать вам общее представление о моделировании данных, я цитирую здесь

Вам необходимо учитывать два фактора:

  • Будут ли сущности на «N» стороне Единого-не-когда-либо нужно стоять одному?
  • В чем кардинальность отношений: один-к-одному;один ко многим;или от одного к количеству миллиардов?

Исходя из этих факторов, вы можете выбрать одну из трех основных схем схемы One-to-N:

  • Вставить сторону Nесли количество элементов однозначно, и нет необходимости обращаться к встроенному объекту вне контекста родительского объекта
  • Использовать массив ссылок на объекты N-стороны, если количество элементов однозначно-много или если по какой-либо причине объекты N-стороны должны стоять в одиночестве
  • Используйте ссылку на Одностороннюю в объектах N-стороны, если количество элементов равно одному-на-миллиардам

Пожалуйста, обратитесь к очень хорошо написанному и четко сформулированному сообщению 6 Полезных правил для схемы схемы MongoDB: Часть 1 из блогов mongodb.

Даже после этого, если вы считаете хорошей идеей связать другую схему, обратитесь к этому вопросу SO - Ссылка на другую схему в Mongoose

...