loopbackio / loopbackio/loopback-next
Query nested relations recursively
Dieses Issue hat noch niemand übernommen.
- Vorherrschende Sprache
- TypeScript
- Sterne
- 5.1k
- Forks
- 1.1k
- Ø Merge
- 2 T. 21 Std.
- Gemergte PRs (30 T.)
- 27
Beschreibung
Suggestion
Original from comment.
LoopBack 4 provides the custom scope to achieve inclusion, which was implemented in #3454. But it only goes down to the certain levels of relations that are described in the filter, for example, three levels:
const filter = {
include: [
{
relation: 'nested 1',
scope: {
include: [{relation: 'nested 2'}],
},
},
],
};
It'd be good to have a better way to query nested relations to max depth/ N degrees, something like {relation: "nested", depth: 10}.
Examples
Model Comment has many replies: Comment[], and comments in the replies has many replies, etc. Returns when there is no more replies or the max depth is reached.
Acceptance criteria
- Provide a way to query nested relations to max depth/ N degrees, or at least to have a helper function for writing the filter.
- Should document how to configure the max depth of such traverses.
Beitragsleitfaden
Erste Schritte
- Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
- Forke das Repository und arbeite in einem Branch.
- Öffne einen Pull Request, der die Issue-Nummer nennt.
Rechercherichtung
Beginne mit der Arbeit zur Einbeziehung von custom-scope in Issue #3454 und den Beispielen für nested-relation-Filter in diesem Issue. Lege fest, wie sich eine tiefenbegrenzte Traversierung für rekursive Comment-Antworten verhalten soll, dokumentiere die max-depth-Konfiguration und überprüfe, dass die Traversierung entweder am Limit oder am Ende der Relation stoppt.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- typescript
- Bereich
- api, backend
- Issue-Typ
- Feature
- Schwierigkeit
- 5/5
- Geschätzter Aufwand
- Über eine Woche
- Aktivitätsstatus
- Veraltet
- Klarheit
- Größtenteils klar
- Anfängerfreundlichkeit
- 25/100