Ik weet niet of je hier nog steeds naar op zoek bent, maar als je mangoest gebruikt, kun je profiteren van de functie invullen en gebruiken als middleware
Hier is een voorbeeld:laten we zeggen dat ik een lijst wil van mensen en hun vrienden, en hun vrienden-vrienden, enz. Het resultaat zou er als volgt uit moeten zien:
[
{
_id: "abc123",
name: "John Doe",
friends: [
{
_id: "efg456",
name: "Foo bar",
friends: [
{
_id: "hij789",
name: "Jane Doe",
friends: [more friends...]
}
]
}
]
]
In de db worden ze zo opgeslagen
{_id: "abc123", name: "John Doe", friends: ["efg456"]}
{_id: "efg456", name: "Foo bar", friends: ["hij789"]}
{_id: "hij789", name: "Jane Doe", friends: [more friends...]}
Uw schema en middleware zouden zijn:
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()
})
De functie als middleware toevoegen aan find
zal ervoor zorgen dat het voor elke gevonden persoon wordt uitgevoerd. Dat omvat de kinderen in de friends
array.