Menu Docs
Página inicial do Docs
/ /
Serviços Atlas App

Conectar a fontes de dados MongoDB

Nesta página

  • Visão geral
  • Ler, escrever e agregar dados
  • Proteja e valide dados
  • Sincronize dados automaticamente
  • Reaja às alterações de dados
  • Vincule uma fonte de dados
  • Limitações da fonte de dados
  • Federação de Dados Atlas
  • Instâncias sem servidor

Uma fonte de dados representa uma instância doMongoDB Atlas no mesmo projeto do seu aplicativo. Você usa fontes de dados para armazenar e recuperar os dados do seu aplicativo.

A maioria dos aplicativos se conecta a uma única fonte de dados, mas você pode configurar várias fontes de dados se os seus dados estiverem espalhados pelas instâncias. Você define um nome exclusivo para cada fonte de dados vinculada ao seu aplicativo e usa esse nome para se referir à fonte de dados em todo o aplicativo.

As solicitações para fontes de dados são roteadas por meio do Atlas App Services. Por conta disso, o App Services abre e fecha automaticamente as conexões do banco de dados. Isso significa que você não precisa se preocupar em chamar db.close() ao usar uma fonte de dados.

Observação

Criptografia de backend

Toda a comunicação interna entre o App Services e o Atlas é criptografada com certificados x509.

Você pode ler e gravar dados em uma fonte de dados a partir de uma função do lado do servidor ou conectar-se a partir de um aplicativo cliente. Você escreve queries usando a sintaxe de query padrão do MongoDB.

exports = async function() {
const mongodb = context.services.get("mongodb-atlas");
return mongodb
.db("myDatabase")
.collection("myCollection")
.findOne()
}

Para aprender como trabalhar com uma fonte de dados em uma Função do Atlas, consulte os seguintes guias:

Para saber como usar uma fonte de dados de um Realm SDK, veja o Query no Atlas a partir de aplicativos de clientes.

Observação

As fontes de dados vinculadas não aceitam todas as operações de aggregation e CRUD do MongoDB. Algumas operações não estarão disponíveis ao fazer query no MongoDB como um usuário específico devido à sobrecarga da validação de esquema e das regras de acesso a dados. Você pode contornar algumas limitações fazendo query no MongoDB como um usuário do sistema.

Para obter mais informações sobre quais operações são suportadas, consulte APIs de agregação CRUD & .

As fontes de dados permitem definir regras de acesso e esquemas de documento para os dados que elas contêm. As regras autorizam dinamicamente os usuários a ler e escrever subconjuntos de seus dados, e os esquemas controlam a forma e o conteúdo de cada documento.

Por padrão, as operações de leitura e gravação em uma fonte de dados vinculada são seguras. Um usuário não pode ler ou gravar nenhum dado, a menos que uma regra o permita explicitamente. Quaisquer dados inseridos ou modificados por um usuário autorizado devem estar em conformidade com o esquema correspondente.

Se você não definir regras para uma collection, as consultas na collection falharão. Isso significa que você pode expor com segurança uma interface de fonte de dados configurada corretamente em aplicativos cliente sem correr o risco de corrupção ou vazamento de dados.

Os aplicativos Atlas Device Sync armazenam dados e sincronizam alterações de dados em um cluster vinculado, chamado de aglomerado sincronizado. O protocolo de sincronização garante que seus dados sejam eventualmente consistentes com todos os clientes de sincronização e com o cluster sincronizado.

Para mais informações sobre o Atlas Device Sync e como ele interage com as fontes de dados do seu aplicativo, consulte Atlas Device Sync.

Observação

Requisitos de fonte de dados para Device Sync

Para habilitar o Device Sync, seu aplicativo do App Services App deve ter pelo menos uma fonte de dados vinculada que atenda aos seguintes requisitos:

Você pode criar gatilhos de banco de dados (trigger) que executam funções automaticamente em resposta à alteração de dados. Os gatilhos usam change streams do MongoDB para observar a fonte de dados e executar uma função sempre que um evento de alteração corresponder à configuração do gatilho. Uma função de gatilho pode executar código arbitrário e pode acessar um evento de alteração para obter informações detalhadas sobre a alteração que causou sua execução.

Para saber mais sobre como os gatilhos funcionam e como definir os seus próprios, consulte Gatilhos de banco de dados.

Importante

Os gatilhos só estão disponíveis para fontes de dados que oferecem suporte a fluxos de mudança. Você não pode definir gatilhos em uma instância do Banco de Dados Federado ou instância do Atlas sem servidor.

Uma fonte de dados configurada em seu aplicativo está vinculada à instância subjacente no Atlas. Você pode vincular várias instâncias ao seu aplicativo e até mesmo criar várias fontes de dados vinculadas à mesma instância subjacente.

Você pode configurar uma nova fonte de dados vinculada na UI do App Services, ou você pode definir e enviar por push um arquivo de configuração com o CLI do App Services ou sistema do GitHub:

1

Na interface do usuário do Linked Data Sources , Manage em no menu de navegação esquerdo.

2

Clique em Link a Data Source e forneça as seguintes informações de configuração na tela Data Source Configuration :

Campo
Descrição
Data Source
Um cluster do MongoDB Atlas ou uma instância de banco de dados federada associada ao mesmo projeto que seu aplicativo.
App Services Service Name

Um nome para o serviço do App Services que se conecta à fonte de dados. Você usará esse nome ao se referir à fonte de dados em outras partes do seu aplicativo, como quando instanciar um cliente de serviço do MongoDB.

Exemplo

Considere uma fonte de dados de cluster MongoDB com o App Services Service Name myAtlasCluster. Para criar um cliente de serviço em uma função, use o seguinte código:

const myAtlasCluster = context.services.get("myAtlasCluster");
MongoDB Connection String
config.wireProtocolEnabled
Necessário para Atlas clusters. Não habilitado para instâncias do banco de dados federado. Um boolean que indica se o App Services deve permitir que os clientes se conectem a esse cluster com uma connection string pelo protocolo de fio.
Read Preference
Necessário para Atlas clusters. Não disponível para instâncias do banco de dados federado. Especifica a read preference do cluster. A read preference padrão (primary) deve ser suficiente para a maioria dos casos de uso.
3

Após selecionar e configurar um cluster MongoDB ou instância do banco de dados federado, clique em Save. O App Services inicia imediatamente o processo de vinculação à fonte de dados, que pode levar até cinco minutos.

1

Para vincular um cluster do MongoDB Atlas ou uma instância de banco de dados de dados federado ao App Services CLI, você precisa de uma cópia local dos arquivos de configuração do seu aplicativo.

Para extrair uma cópia local da versão mais recente do seu aplicativo, execute o seguinte:

appservices pull --remote="<Your App ID>"

Dica

Você também pode baixar uma cópia dos arquivos de configuração do seu aplicativo na tela Deploy > Export App na interface do usuário do App Services.

2

Crie um novo subdiretório com o nome que você usará para a fonte de dados no /data_sources.

mkdir -p data_sources/<Data Source Name>
3

Adicione um arquivo denominado config.json no subdiretório da fonte de dados . O arquivo pode configurar um cluster MongoDB Atlas ou uma instância do banco de dados de dados federado.

O arquivo de configuração deve ter o seguinte formato geral:

/data_sources/<Service Name>/config.json
{
"name": "<Service Name>",
"type": "mongodb-atlas",
"config": {
"clusterName": "<Atlas Cluster Name>",
"readPreference": "<Read Preference>",
"wireProtocolEnabled": <Boolean>,
"sync": <Sync Configuration>
}
}

Observação

Para obter informações detalhadas sobre o conteúdo de um arquivo de configuração de cluster, consulte Configuração do cluster MongoDB vinculado.

/data_sources/<Service Name>/config.json
{
"name": "<Service Name>",
"type": "datalake",
"config": {
"dataLakeName": "<Federated database instance name>"
}
}

Observação

4

Depois de definir e salvar um arquivo de config.json para a fonte de dados, você pode enviar a configuração por push para seu aplicativo remoto. O App Services inicia imediatamente o processo de vinculação à fonte de dados, que pode levar até cinco minutos.

appservices push --remote="<Your App ID>"

Uma fonte de dados vinculada pode representar um de vários tipos de instâncias do MongoDB Atlas. Dependendo do tipo da instância subjacente, nem todas as funcionalidades são aceitas.

Após vincular uma fonte de dados, você não poderá alterar o tipo de instância subjacente. Em vez disso, você pode vincular uma nova fonte de dados a outro tipo de instância.

Você pode vincular uma instância do banco de dados federado ao seu aplicativo como uma fonte de dados do MongoDB. No entanto, existem algumas advertências ao usar o Atlas Data Federation:

Você pode vincular uma instância sem servidor ao seu aplicativo como uma fonte de dados do MongoDB. No entanto, as instâncias sem servidor não aceitam change streams no momento, portanto, as seguintes funcionalidades são limitadas:

  • Não é possível criar um gatilho de banco de dados em uma instância sem servidor.

  • Você não pode usar uma instância sem servidor como cluster do Device Sync do seu aplicativo.

  • Você não pode observar collections para alterações em fontes de dados que são instâncias sem servidor do MongoDB Atlas.

Voltar

Okta (Custom JWT)