В чем разница между этими двумя презентациями схемы мангуста? - PullRequest
0 голосов
/ 02 сентября 2018

Я пытаюсь выяснить разницу между двумя ситуациями, в которых можно представить схемы Mongoose. Я ищу создать пост, под которым пользователи могут оставлять комментарии. В одном случае у меня есть схема Comment в том же файле, что и схема (основная) Post, как показано ниже, в случае 1, тогда как в другом случае используются отдельные файлы для соответствующих схем (Comment и Post), как видно в случае 2 Схема комментариев должным образом упоминается в схеме Post.

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

Надеюсь, я был достаточно лаконичен в описании своего затруднительного положения.

Вот соответствующие фрагменты кода.

Случай 1: схемы комментирования и публикации в одном файле

import mongoose from 'mongoose';

const Schema = mongoose.Schema;

const CommentSchema = new Schema({
  body: { type: String },
  addedBy: { type: Schema.Types.ObjectId, ref: 'User' },
});

const PostSchema = new Schema({
  //...
  comments: [CommentSchema],
  //...
  },
  { 
    timestamps: true,
  },
);

const Post = mongoose.model('Post', PostSchema);

export default Post;

Случай 2: схемы комментирования и публикации в отдельных файлах

//comment.js
import mongoose from 'mongoose';

const Schema = mongoose.Schema;

const CommentSchema = new Schema({
  body: { type: String },
  addedBy: { type: Schema.Types.ObjectId, ref: 'User' },
});

const Comment = mongoose.model('Comment', CommentSchema);

export default Comment;

/******************************************************/

//post.js

import mongoose from 'mongoose';

const Schema = mongoose.Schema;

const PostSchema = new Schema({
  //...
  comments: [{ type: Schema.Types.ObjectId, ref: 'Comment' }],
  //...
  },
  { 
    timestamps: true,
  },
);

const Post = mongoose.model('Post', PostSchema);

export default Post;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...