Как вложить схемы с помощью mon goose? - PullRequest
0 голосов
/ 07 августа 2020
const CommentSchema = new mongoose.Schema({
    username: {
        type: String,
        required: true,
    },

    detail: {
        type: String,
        required: true,
    },
    responses: [CommentSchema]

})



const PostSchema = new mongoose.Schema({
    author: {
        type: String,
        required: true,
    },
    title: {
        type: String,
        required: true
    },
    comments: [CommentSchema]


})

Я все время получаю справочную ошибку о том, что CommentSchema не существует. Как вложить схемы с mon goose? Я думаю, что ошибка связана с тем, что commentSchema вызывается внутри const commentschema. Я видел это раньше, поэтому не знаю, возможно ли это

Ответы [ 2 ]

0 голосов
/ 07 августа 2020

Пробовали ли вы добавить поле «ответ» после создания схемы?

const CommentSchema = new mongoose.Schema({
    username: {
        type: String,
        required: true,
    },

    detail: {
        type: String,
        required: true,
    },
});
CommentSchema.add({ responses: [CommentSchema] });

Я бы, вероятно, сделал это, сохранив исходную настройку и сохранив ответы как ObjectIds Модель комментариев.

const CommentSchema = new mongoose.Schema({
    username: {
        type: String,
        required: true,
    },

    detail: {
        type: String,
        required: true,
    },
    responses: [{ type: ObjectId, ref: 'Comment' }],
});

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

Затем просто заполните поле «ответы» по мере необходимости.

0 голосов
/ 07 августа 2020

В вашем верхнем фрагменте у вас есть responses: [CommentSchema], но CommentSchema все еще не определена, поскольку этот фрагмент определяет его. Вы не можете дать такого рекурсивного определения.

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