Dieses Dokument wurde von KI übersetzt. Für genaue Informationen lesen Sie bitte die englische Version.
Der Datenquellen-Manager (DataSourceManager-Instanz) wird verwendet, um mehrere Datenquellen zu verwalten und darauf zuzugreifen (z. B. die Hauptdatenbank main, die Protokoll-Datenbank logging usw.). Er kommt zum Einsatz, wenn mehrere Datenquellen vorhanden sind oder ein Zugriff auf Metadaten über verschiedene Datenquellen hinweg erforderlich ist.
| Szenario | Beschreibung |
|---|---|
| Mehrere Datenquellen | Alle Datenquellen aufzählen oder eine bestimmte Datenquelle anhand des Keys abrufen. |
| Datenquellenübergreifender Zugriff | Zugriff auf Metadaten im Format „Datenquellen-Key + Sammlungsname“, wenn die Datenquelle des aktuellen Kontexts unbekannt ist. |
| Felder über den vollständigen Pfad abrufen | Verwendung des Formats dataSourceKey.collectionName.fieldPath, um Felddefinitionen über verschiedene Datenquellen hinweg abzurufen. |
Hinweis: Wenn Sie nur mit der aktuellen Datenquelle arbeiten, verwenden Sie vorrangig
ctx.dataSource. Nutzen Siectx.dataSourceManagernur dann, wenn Sie Datenquellen aufzählen oder zwischen ihnen wechseln müssen.
| Anforderung | Empfohlene Verwendung |
|---|---|
| Einzelne Datenquelle, die an den aktuellen Kontext gebunden ist | ctx.dataSource (z. B. die Datenquelle der aktuellen Seite/des aktuellen Blocks) |
| Einstiegspunkt für alle Datenquellen | ctx.dataSourceManager |
| Datenquellen auflisten oder wechseln | ctx.dataSourceManager.getDataSources() / getDataSource(key) |
| Sammlung innerhalb der aktuellen Datenquelle abrufen | ctx.dataSource.getCollection(name) |
| Sammlung über Datenquellen hinweg abrufen | ctx.dataSourceManager.getCollection(dataSourceKey, collectionName) |
| Feld innerhalb der aktuellen Datenquelle abrufen | ctx.dataSource.getCollectionField('users.profile.avatar') |
| Feld über Datenquellen hinweg abrufen | ctx.dataSourceManager.getCollectionField('main.users.profile.avatar') |
getCollectionField ist dataSourceKey.collectionName.fieldPath, wobei das erste Segment der Datenquellen-Key ist, gefolgt vom Sammlungsnamen und dem Feldpfad.getDataSource(key) gibt undefined zurück, falls die Datenquelle nicht existiert; es wird empfohlen, vor der Verwendung eine Prüfung auf Nullwerte durchzuführen.addDataSource löst eine Ausnahme aus, wenn der Key bereits existiert; upsertDataSource überschreibt entweder die bestehende Datenquelle oder fügt eine neue hinzu.