Не знам дали все още търсите отговора на това, но ако използвате mongoose, можете да се възползвате от попълнете функция и я използвайте като междинен софтуер
Ето един пример:Да приемем, че искам списък с хора и техните приятели, и техните приятели-приятели и т.н. Резултатът трябва да изглежда така:
[
{
_id: "abc123",
name: "John Doe",
friends: [
{
_id: "efg456",
name: "Foo bar",
friends: [
{
_id: "hij789",
name: "Jane Doe",
friends: [more friends...]
}
]
}
]
]
В db те се съхраняват така
{_id: "abc123", name: "John Doe", friends: ["efg456"]}
{_id: "efg456", name: "Foo bar", friends: ["hij789"]}
{_id: "hij789", name: "Jane Doe", friends: [more friends...]}
Вашата схема и междинен софтуер ще бъдат:
const Person = new Schema<Folder>({
name: {type: String, required: true},
friends: [{type: Schema.Types.ObjectId, ref: "person"}],
}, {timestamps: true})
Person.pre("find", function(next) {
this.populate("friends")
next()
})
Добавяне на функцията като междинен софтуер към find
ще го накара да работи за всеки намерен човек. Това включва децата в friends
масив.