Introdução ao Azure Cosmos DB para MongoDB usando JavaScript

APLICA-SE A: MongoDB

Este artigo mostra como se conectar ao Azure Cosmos DB para MongoDB usando o pacote npm nativo do MongoDB. Uma vez conectado, você pode executar operações em bancos de dados, coleções e documentos.

Nota

Os trechos de código de exemplo estão disponíveis no GitHub como um projeto JavaScript.

Documentação | de referência da API para MongoDB Pacote MongoDB (npm)

Pré-requisitos

Criar um novo aplicativo JavaScript

  1. Crie um novo aplicativo JavaScript em uma pasta vazia usando seu terminal preferido. Use o npm init comando para iniciar os prompts para criar o package.json arquivo. Aceite os padrões para os prompts.

    npm init
    
  2. Adicione o pacote npm do MongoDB ao projeto JavaScript. Use o npm install package comando especificando o nome do pacote npm. O dotenv pacote é usado para ler as variáveis de ambiente de um .env arquivo durante o desenvolvimento local.

    npm install mongodb dotenv
    
  3. Para executar o aplicativo, use um terminal para navegar até o diretório do aplicativo e executar o aplicativo.

    node index.js
    

Conecte-se com o driver nativo do MongoDB ao Azure Cosmos DB para MongoDB

Para se conectar com o driver nativo do MongoDB ao Azure Cosmos DB, crie uma instância da MongoClient classe. Essa classe é o ponto de partida para executar todas as operações em bancos de dados.

O construtor mais comum para MongoClient tem dois parâmetros:

Parâmetro Valor de exemplo Description
url COSMOS_CONNECTION_STRING variável de ambiente API para cadeia de conexão MongoDB a ser usada para todas as solicitações
options {ssl: true, tls: true, } Opções do MongoDB para a conexão.

Consulte o Guia de solução de problemas para problemas de conexão.

Obter nome do recurso

  1. Crie uma variável de shell para resourceGroupName.

    # Variable for resource group name
    resourceGroupName="msdocs-cosmos"
    
  2. Use o az cosmosdb list comando para recuperar o nome da primeira conta do Azure Cosmos DB em seu grupo de recursos e armazená-lo na variável de shell accountName .

    # Retrieve most recently created account name
    accountName=$(
        az cosmosdb list \
            --resource-group $resourceGroupName \
            --query "[0].name" \
            --output tsv
    )
    

Obter a cadeia de ligação

  1. Encontre a API para a cadeia de conexão do MongoDB na lista de cadeias de conexão da conta com o az cosmosdb keys list comando.

    az cosmosdb keys list --type connection-strings \
        --resource-group $resourceGroupName \
        --name $accountName 
    
  2. Registre os valores de CHAVE PRIMÁRIA . Você usará essas credenciais mais tarde.

Configurar variáveis de ambiente

Para usar os valores CONNECTION STRING dentro do seu código, defina esse valor no ambiente local que executa o aplicativo. Para definir a variável de ambiente, use seu terminal preferido para executar os seguintes comandos:

$env:COSMOS_CONNECTION_STRING = "<cosmos-connection-string>"

Criar MongoClient com cadeia de conexão

  1. Adicione dependências para fazer referência aos pacotes npm MongoDB e DotEnv.

    // Read .env file and set environment variables
    require('dotenv').config();
    
    // Use official mongodb driver to connect to the server
    const { MongoClient } = require('mongodb');
    
  2. Defina uma nova instância da classe usando o construtor e process.env. use a cadeia de MongoClient conexão.

    // New instance of MongoClient with connection string
    // for Cosmos DB
    const url = process.env.COSMOS_CONNECTION_STRING;
    const client = new MongoClient(url);
    
    // connect to the server
    await client.connect();
    
    // client options
    const options = client.options
    console.log(`Options:\n${Object.keys(options).map(key => `\t${key}: ${options[key]}\n`)}`);
    

Para obter mais informações sobre diferentes maneiras de criar uma MongoClient instância, consulte MongoDB NodeJS Driver Quick Start.

Feche a conexão MongoClient

Quando o aplicativo terminar a conexão, lembre-se de fechá-lo. A .close() chamada deve ser depois que todas as chamadas de banco de dados forem feitas.

client.close()

Usar classes de cliente MongoDB com o Azure Cosmos DB para API para MongoDB

Antes de começar a criar o aplicativo, vamos examinar a hierarquia de recursos no Azure Cosmos DB. O Azure Cosmos DB tem um modelo de objeto específico usado para criar e acessar recursos. O Azure Cosmos DB cria recursos em uma hierarquia que consiste em contas, bancos de dados, coleções e documentos.

Diagrama da hierarquia do Azure Cosmos DB DB, incluindo contas, bancos de dados, coleções e documentos.

Diagrama hierárquico mostrando uma conta do Azure Cosmos DB na parte superior. A conta tem dois nós de banco de dados filho. Um dos nós de banco de dados inclui dois nós de coleção filho. O outro nó do banco de dados inclui um único nó de coleção filho. Esse único nó de coleção tem três nós de doc filho.

Cada tipo de recurso é representado por uma ou mais classes JavaScript associadas. Aqui está uma lista das classes mais comuns:

Classe Description
MongoClient Essa classe fornece uma representação lógica do lado do cliente para a camada API for MongoDB no Azure Cosmos DB. O objeto cliente é usado para configurar e executar solicitações no serviço.
Db Essa classe é uma referência a um banco de dados que pode, ou não, existir no serviço ainda. O banco de dados é validado no lado do servidor quando você tenta acessá-lo ou executar uma operação em relação a ele.
Collection Essa classe é uma referência a uma coleção que também pode não existir no serviço ainda. A coleção é validada no lado do servidor quando você tenta trabalhar com ela.

Os guias a seguir mostram como usar cada uma dessas classes para criar seu aplicativo.

Guia:

Consulte também

Próximos passos

Agora que você se conectou a uma API para a conta do MongoDB, use o próximo guia para criar e gerenciar bancos de dados.