У меня есть схема Person:
const person = new mongoose.Schema({
name: String,
birthday: Date,
sex: String
},
{
toObject: { virtuals: true },
toJSON: { virtuals: true }
});
person.virtual('tasks', {
ref: 'task',
localField: '_id',
foreignField: 'person'
});
export default mongoose.model('person', person);
И задача, которая имеет поле person
:
const schema = new mongoose.Schema({
person: {
type: mongoose.Schema.Types.ObjectId,
ref: 'person',
required: true
},
name: String
});
export default mongoose.model('task', schema);
И мой API для получения одного человека:
api.get('/person/:id', async (req, res) => {
let personID = req.params.id;
if (personID) {
let person = await Person.findById(personID);
if (person)
res.json(person);
else
res.status(404).end();
}
else {
res.status(400).end();
}
});
Когда я запрашиваю API для одного человека, tasks
всегда null
, есть идеи, почему?
Спасибо
Обновление
Я пробовал с:
let person = await Person.findById(personID).populate('tasks').exec();
и он все еще возвращает null
.