Имеют следующий сценарий -
const Person = mongoose.model('Person', {
name: String
});
const FamilyTree = mongoose.model('FamilyTree', {
person: { type: Schema.Types.ObjectId, ref: 'Person' },
children: [FamilyTree]
});
const run = async => {
await Promise.all(['Bob', 'Mike', 'Rory'].map( name => Person.create({name}) ));
let bob = await Person.find({name: 'Bob'}); // [request to BD] total requests = 1
let mike = await Person.find({name: 'Mike'}); // [request to BD] total requests = 2
let rory = await Person.find({name: 'Rory'}); // [request to BD] total requests = 3
await FamilyTree.create({
person: bob._id,
children: [
{
person: mike._id,
children: [
{
person: rory._id,
children: []
}
]
}
]
});
await FamilyTree.find().populate('person').exec(); // how many db requests will there be? 1 or 3?
}
Сколько запросов к базе данных выполняется при использовании заполнения, при условии, что ответ содержит следующие данные?
Данные, извлеченные из базы данных -
{
person: {name: 'Bob'},
children: [{person: 'Mike', children: [{name: 'Rory', children: []}]}]
}