MissingSchemaError: Схема не была зарегистрирована для модели "Место проведения" - PullRequest
0 голосов
/ 20 марта 2020

У меня есть две схемы, которые я хотел бы ссылаться друг на друга. Ссылка DealSchema внутри VenueSchema работает нормально, но ссылка VenueSchema внутри DealSchema выдает ошибку.

// venueModel.js

import mongoose from 'mongoose';
import { DealSchema } from './dealModel'
import { Decimal128 } from 'mongodb';

const Schema = mongoose.Schema;
const Deal = new mongoose.model('Deal', DealSchema);

export const VenueSchema = new Schema({
    name: {
        type: String,
        required: 'Venue name is required'
    },
    phone: {
        type: Number
    },
    deals: {
        type: [{ type: Schema.Types.ObjectId, ref: Deal }]
    },
    coords: {
        lat: Decimal128,
        lng: Decimal128
    }
})

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

Он выбрасывает MissingSchemaError: Schema hasn't been registered for model "Venue".

// dealModel.js

import mongoose from 'mongoose';
import { VenueSchema } from './venueModel';

const Schema = mongoose.Schema;

*** this is the line that creates the error ***
const Venue = new mongoose.model('Venue', VenueSchema);

export const DealSchema = new Schema({
    venue: {
        type: Schema.Types.ObjectId, ref: Venue
    },
    description: {
        type: String,
        required: 'Deal description is required'
    }
})

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

Использование mongodb v3.5.4 и mongoose v5.9.3

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