Este documento foi traduzido por IA. Para informações precisas, consulte a versão em inglês.
O gerenciador de fontes de dados (instância de DataSourceManager) é usado para gerenciar e acessar múltiplas fontes de dados (ex: banco de dados principal main, banco de logs logging, etc.). Ele é utilizado quando existem múltiplas fontes de dados ou quando o acesso a metadados entre fontes de dados é necessário.
| Cenário | Descrição |
|---|---|
| Múltiplas fontes de dados | Enumerar todas as fontes de dados ou obter uma fonte de dados específica por chave. |
| Acesso entre fontes de dados | Acessar metadados usando o formato "chave da fonte de dados + nome da coleção" quando a fonte de dados do contexto atual for desconhecida. |
| Obter campos pelo caminho completo | Usar o formato dataSourceKey.collectionName.fieldPath para recuperar definições de campos em diferentes fontes de dados. |
Observação: Se você estiver operando apenas na fonte de dados atual, priorize o uso de
ctx.dataSource. Usectx.dataSourceManagerapenas quando precisar enumerar ou alternar entre fontes de dados.
| Necessidade | Uso Recomendado |
|---|---|
| Fonte de dados única vinculada ao contexto atual | ctx.dataSource (ex: a fonte de dados da página/bloco atual) |
| Ponto de entrada para todas as fontes de dados | ctx.dataSourceManager |
| Listar ou alternar fontes de dados | ctx.dataSourceManager.getDataSources() / getDataSource(key) |
| Obter coleção dentro da fonte de dados atual | ctx.dataSource.getCollection(name) |
| Obter coleção entre fontes de dados | ctx.dataSourceManager.getCollection(dataSourceKey, collectionName) |
| Obter campo dentro da fonte de dados atual | ctx.dataSource.getCollectionField('users.profile.avatar') |
| Obter campo entre fontes de dados | ctx.dataSourceManager.getCollectionField('main.users.profile.avatar') |
getCollectionField é dataSourceKey.collectionName.fieldPath, onde o primeiro segmento é a chave da fonte de dados, seguido pelo nome da coleção e o caminho do campo.getDataSource(key) retorna undefined se a fonte de dados não existir; recomenda-se realizar uma verificação de valor nulo antes do uso.addDataSource lançará uma exceção se a chave já existir; upsertDataSource irá sobrescrever a existente ou adicionar uma nova.