Я тестирую заполнение исправлений в пн goose.
const mongoose = require('mongoose')
const { ObjectId } = require('mongodb');
const app = require('express')()
mongoose.connect('<connection fine>', { useNewUrlParser: true, useUnifiedTopology: true })
mongoose.connection.once('open', function () {
console.log('Connection with database')
});
const CompanySchema = new mongoose.Schema({
name: String,
address: String,
employees: { type: mongoose.Schema.Types.ObjectId, ref: 'employee' }
})
const DepartmentSchema = new mongoose.Schema({
name: String,
location: String
})
const EmployeeSchema = new mongoose.Schema({
firstName: String,
lastName: String,
mobile: String,
department: { type: mongoose.Schema.Types.ObjectId, ref: 'department' }
})
let Department = mongoose.model('department', DepartmentSchema)
let Employee = mongoose.model('employee', EmployeeSchema)
let Company = mongoose.model('company', CompanySchema)
app.use("/", async (req, res) => {
await Department.deleteMany({})
await Employee.deleteMany({})
await Company.deleteMany({})
await Department.create({
name: 'IT Department',
location: 'Building A'
})
await Department.create({
name: 'Marketing Department',
location: 'Building B'
})
await Employee.create({
firstName: 'Manel',
lastName: 'Jakin',
mobile: '986374763',
department: await Department.findOne({ name: 'IT Department' })
})
await Employee.create({
firstName: 'Laurel',
lastName: 'Borbas',
mobile: '967583566',
department: await Department.findOne({ name: 'Marketing Department' })
})
await Company.create({
name: 'MagoDev',
address: 'Algarve',
employees: await Employee.find().select('_id') // or await Employee.find()
})
res.json({
//departments: await Department.find(),
//employees: await Employee.find().populate('department'),
company: await Company.find().populate({
path: 'employee',
model: 'employee',
populate: { path: 'department', model: 'department' }
})
})
})
app.listen(5000, () => console.log("Server on port 5000"))
, и я получил эту ошибку
Сервер на порту 5000 Соединение с базой данных (узел: 42988) UnhandledPromiseRejectionWarning : ValidationError: сбой проверки компании: сотрудники: сбой приведения к ObjectID для значения "[{_id: 5e408062eaef2ca7ec5c2d35}, {_id: 5e408063eaef2ca7ec5c2d36}]" в пути "employee" на новой ошибке ValidationError (C: \ Users \ media \ Documents Проекты \ Mon goose -популяция \ node_modules \ mongoose \ lib \ error \ validation. js: 31: 11) в модели.Document.invalidate (C: \ Users \ media \ Documents \ Projects \ Mon goose -population \ node_modules \ mongoose \ lib \ document. js: 2490: 32) в модели. $ set (C: \ Users \ media \ Documents \ Projects \ Mon goose -population \ node_modules \ mongoose \ lib \ document. js: 1200: 12) в model._handleIndex (C: \ Users \ media \ Documents \ Projects \ Mon goose -population \ node_modules \ mongoose \ lib \ document. js: 935 : 14) в модели. $ Set (C: \ Users \ media \ Documents \ Projects \ Mon goose -po pulation \ node_modules \ mongoose \ lib \ document. js: 879: 22) в модели. Документ (C: \ Users \ media \ Documents \ Projects \ Mon goose -популяция \ node_modules \ mongoose \ lib \ document . js: 137: 12) в модели. Модель (C: \ Users \ media \ Documents \ Projects \ Mon goose -population \ node_modules \ mongoose \ lib \ model. js: 102: 12) в новой модели (C: \ Users \ media \ Documents \ Projects \ Mon goose -population \ node_modules \ mongoose \ lib \ model. js: 4618: 15) в toExecute.pu sh .callback ( C: \ Users \ media \ Documents \ Projects \ Mon goose -population \ node_modules \ mongoose \ lib \ model. js: 3083: 22) в toExecute.forEach (C: \ Users \ media \ Documents \ Projects \ Mon goose -population \ node_modules \ mongoose \ lib \ model. js: 3119: 7) в Array.forEach () в utils.promiseOrCallback.cb (C: \ Users \ media \ Documents \ Projects \ Mon goose -population \ node_modules \ mongoose \ lib \ model. js: 3118: 15) в Promise (C: \ Users \ media \ Documents \ Projects \ Mon goose -population \ node_modules \ mongoose \ lib \ utils. js: 283: 5) в новом Promise () в Object.promiseOrCallback (C: \ Users \ media \ Documents \ Projects \ Mon goose -population \ node_modules \ mongoose \ lib \ utils. js: 282: 10) в Function.create (C: \ Users \ media \ Documents \ Projects \ Mon goose -population \ node_modules \ mongoose \ lib \ model. js: 3053: 16) (узел: 42988) UnhandledPromiseRejectionWarning: необработанное отклонение обещания. Эта ошибка возникла либо из-за того, что внутри asyn c -блокировки была выброшена функция без блока catch, либо из-за отклонения обещания, которое не было обработано с помощью .catch (). (идентификатор отклонения: 1) (узел: 42988) [DEP0018] Предупреждение об устаревании: отклонение необработанного обещания устарело. В будущем отклонения обещания, которые не обрабатываются, завершат процесс Node.js с ненулевым кодом выхода.
Как я могу найти решение ??