Jeg ved ikke, om du stadig leder efter svaret på dette, men hvis du bruger mongoose, kan du drage fordel af udfyldningsfunktionen og brug den som middleware
Her er et eksempel:Lad os sige, at jeg vil have en liste over personer og deres venner, og deres venner-venner osv. Resultatet skulle se sådan ud:
[
{
_id: "abc123",
name: "John Doe",
friends: [
{
_id: "efg456",
name: "Foo bar",
friends: [
{
_id: "hij789",
name: "Jane Doe",
friends: [more friends...]
}
]
}
]
]
I db'en er de gemt sådan
{_id: "abc123", name: "John Doe", friends: ["efg456"]}
{_id: "efg456", name: "Foo bar", friends: ["hij789"]}
{_id: "hij789", name: "Jane Doe", friends: [more friends...]}
Dit skema og din middleware ville være:
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()
})
Tilføjelse af funktionen som en middleware til find
vil få det til at køre for hver person fundet. Det inkluderer børnene i friends
array.