#node.js #mongodb #mongoose
#node.js #mongodb #мангуст
Вопрос:
Я пытаюсь настроить разные модели с одной и той же схемой для поиска, но я сталкиваюсь с ошибкой, когда пытаюсь найти модель по имени, данному ей. Я получаю сообщение об ошибке «Схема не была зарегистрирована для модели «model1», но модель четко отображается в базе данных. Ниже приведен код для настройки модели:
const model = mongoose.model(modelname, Schema) var doc = new model({var1, var2, var3}); doc.save().then((resp) =gt; { return res.status(200).json(resp); })
Ниже приведен код для повторного доступа к модели по другому маршруту:
var model = mongoose.model(modelname, Schema);
Проблема в том, что имя модели является переменной, поэтому я никогда не узнаю точную модель, к которой осуществляется доступ
изменить: схема
const Schema = new Mongoose.Schema({ var1: String, var2: String, var3: String }, { timestamps: { createdAt: 'created_at', updatedAt: 'updated_at' } });
Комментарии:
1. Не могли бы вы поделиться своей схемой? Особенно если в нем есть какие
ref
-то буквы «с»2. там нет ссылок, в нем просто 3 строки
Ответ №1:
Не Правильно, Требуется Обновление
Я думаю, что когда вы используете var model = mongoose.model(modelname, Schema);
мангуста, он зарегистрирует это в базе данных, чтобы вызвать дублирование ошибки с тем же именем модели.
И если вы хотите иметь больше моделей в одной схеме, я думаю, что вы используете другое имя модели
Если вы хотите подключиться к одной модели, вы можете использовать exports
и require
получить
const User = mongoose.model('User', UserSchema); export default User; // other file import UserModel from "./userModel.js";
Комментарии:
1. Привет! Я ценю ваш ответ. Я также попробовал const model = mongoose.model(имямодели);, что приводит к той же ошибке. Я не могу использовать экспорт или требовать, так как маршруты находятся на двух разных серверах, и, кроме того, имя модели меняется в зависимости от тела запроса.
2. спасибо,теперь у меня есть четкий ваш вопрос, я обновлю свой ответ, если у меня будет ответ.