Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Neste quickstart, cria uma aplicação básica do Azure DocumentDB usando Node.js. O Azure DocumentDB é um armazenamento de dados NoSQL que permite às aplicações armazenar documentos na cloud e aceder a eles usando drivers oficiais do MongoDB. Este guia mostra como criar documentos e realizar tarefas básicas no seu cluster Azure DocumentDB usando Node.js.
Referência de API | Código-fonte | Pacote (npm)
Pré-requisitos
Uma assinatura do Azure
- Se você não tiver uma assinatura do Azure, crie uma conta gratuita
- Node.js 22 ou superior
Criar um cluster Azure DocumentDB
Para começar, primeiro precisa de criar um cluster Azure DocumentDB, que serve como base para armazenar e gerir os seus dados NoSQL.
Iniciar sessão no portal Azure (https://portal.azure.com).
A partir do menu do portal do Azure ou a partir da Home page, selecione Criar um recurso.
Na página Nova, pesquise e selecione Azure DocumentDB.
Na página Criar cluster Azure DocumentDB e na secção Básicos, selecione a opção Configurar na secção nível do Cluster.
Na página Escalar , configure estas opções e depois selecione Guardar para persistir as alterações no nível do cluster.
Valor Camada de cluster M30 tier, 2 vCore, 8-GiB RAMArmazenamento por fragmento 128 GiB
De volta à secção Básicos , configure as seguintes opções:
Valor Subscription Selecione sua assinatura do Azure Grupo de recursos Criar um novo grupo de recursos ou selecionar um grupo de recursos existente Nome do cluster Forneça um nome globalmente exclusivo Localização Selecione uma região do Azure suportada para a sua subscrição Versão do MongoDB Selecione 8.0Nome de utilizador de administrador Crie um nome de utilizador para aceder ao cluster como administrador de utilizadores Senha Use uma palavra-passe única associada ao nome de utilizador
Sugestão
Regista os valores que usas como nome de utilizador e palavra-passe. Estes valores são usados mais adiante neste guia. Para mais informações sobre valores válidos, consulte limitações de cluster.
Selecionar Seguinte: Rede.
Na secção de regras de firewall no separador Rede , configure estas opções:
Valor Método de conectividade Public accessPermitir o acesso público dos serviços e recursos Azure dentro do Azure para este cluster Ativado Adicione uma regra de firewall para o seu dispositivo cliente atual para conceder acesso ao cluster selecionando + Adicionar endereço IP atual do cliente.
Sugestão
Em muitos ambientes corporativos, os endereços IP da máquina do desenvolvedor são ocultos devido a uma VPN ou outras configurações de rede corporativa. Nestes casos, pode permitir temporariamente o acesso a todos os endereços IP adicionando o intervalo
0.0.0.0-255.255.255.255de endereços IP como uma regra de firewall. Use esta regra do firewall apenas temporariamente como parte dos testes e desenvolvimento de ligações.Selecione Verificar + criar.
Reveja as definições fornecidas e, em seguida, selecione Criar. A criação do cluster demora alguns minutos. Aguarde que a implementação dos recursos esteja concluída.
Por fim, selecione Ir para recurso para navegar até ao cluster Azure DocumentDB no portal.
Obter credenciais de cluster
Obtenha as credenciais que usa para se ligar ao cluster.
Na página do cluster, selecione a opção Cadeias de Conexão no menu dos recursos.
Na secção Strings de Ligação, copie ou grave o valor do campo String de Ligação.
Importante
A cadeia de conexão no portal não inclui o valor da senha. Você deve substituir o espaço reservado <password> pelas credenciais inseridas quando criou o cluster ou inserir a senha interativamente.
Inicializar o projeto
Crie um novo projeto Node.js no seu diretório atual.
Comece em um diretório vazio.
Abra um terminal no diretório atual.
Inicialize um projeto Node.js.
npm init -yInstale o TypeScript e inicialize a configuração do TypeScript (opcional para suporte a TypeScript).
npm install -D typescript @types/node npx tsc --init
Instalar a biblioteca de cliente
A biblioteca do cliente está disponível através do npm, como o mongodb pacote.
Instala o driver Node.js MongoDB usando npm.
npm install mongodbAbra e reveja o ficheiropackage.json para validar que a entrada do pacote existe.
Importa os módulos necessários para o código da tua aplicação:
import { MongoClient, Db, Collection, Document } from 'mongodb';const { MongoClient } = require('mongodb');
Modelo de objeto
| Nome | Description |
|---|---|
MongoClient |
Tipo usado para se conectar ao MongoDB. |
Db |
Representa um banco de dados no cluster. |
Collection<Document> |
Representa uma coleção dentro de um banco de dados no cluster. |
Exemplos de código
- Autenticar o cliente
- Obtenha uma coleção
- Criar um documento
- Recuperar um documento
- Consultar documentos
O código nesta aplicação liga-se a uma base de dados nomeada adventureworks e a uma coleção chamada products. A products coleção contém detalhes como nome, categoria, quantidade, um identificador único e uma bandeira de venda para cada produto. Os exemplos de código aqui realizam as operações mais comuns ao trabalhar com uma coleção.
Autenticar o cliente
Primeiro, ligue-se ao cliente usando uma cadeia de ligação básica.
Cria a função principal e configura a cadeia de ligação. Substitua
<your-cluster-name>,<your-username>, e<your-password>pela informação real do cluster.async function main(): Promise<void> { // Connection string for Azure DocumentDB cluster const connectionString = "mongodb+srv://<your-username>:<your-password>@<your-cluster-name>.global.mongocluster.cosmos.azure.com/?tls=true&authMechanism=SCRAM-SHA-256&retrywrites=false&maxIdleTimeMS=120000"; // Create a new client and connect to the server const client = new MongoClient(connectionString);async function main() { // Connection string for Azure DocumentDB cluster const connectionString = "mongodb+srv://<your-username>:<your-password>@<your-cluster-name>.global.mongocluster.cosmos.azure.com/?tls=true&authMechanism=SCRAM-SHA-256&retrywrites=false&maxIdleTimeMS=120000"; // Create a new client and connect to the server const client = new MongoClient(connectionString);Liga-te ao cliente MongoDB e verifica a ligação.
try { // Connect to the MongoDB cluster await client.connect(); // Ping the server to verify connection await client.db("admin").command({ ping: 1 }); console.log("Successfully connected and pinged Azure DocumentDB");try { // Connect to the MongoDB cluster await client.connect(); // Ping the server to verify connection await client.db("admin").command({ ping: 1 }); console.log("Successfully connected and pinged Azure DocumentDB");
Obtenha uma coleção
Agora, obtenha a sua base de dados e coleção. Se a base de dados e a coleção ainda não existirem, use o driver para criar isso automaticamente para si.
Pede uma referência para a base de dados.
// Get database reference const database: Db = client.db("adventureworks"); console.log(`Connected to database: ${database.databaseName}`);// Get database reference const database = client.db("adventureworks"); console.log(`Connected to database: ${database.databaseName}`);Obtenha uma referência para a coleção dentro da base de dados.
// Get collection reference const collection: Collection<Document> = database.collection("products"); console.log("Connected to collection: products");// Get collection reference const collection = database.collection("products"); console.log("Connected to collection: products");
Criar um documento
Depois, crie alguns novos documentos na sua coleção. Atualize os documentos para garantir que substituem quaisquer documentos existentes, caso já existam com o mesmo identificador único.
Crie exemplos de documentos de produtos.
// Create sample products interface Product { _id: string; name: string; category: string; quantity: number; price: number; sale: boolean; } const products: Product[] = [ { _id: "00000000-0000-0000-0000-000000004018", name: "Windry Mittens", category: "apparel-accessories-gloves-and-mittens", quantity: 121, price: 35.00, sale: false, }, { _id: "00000000-0000-0000-0000-000000004318", name: "Niborio Tent", category: "gear-camp-tents", quantity: 140, price: 420.00, sale: true, } ];// Create sample products const products = [ { _id: "00000000-0000-0000-0000-000000004018", name: "Windry Mittens", category: "apparel-accessories-gloves-and-mittens", quantity: 121, price: 35.00, sale: false, }, { _id: "00000000-0000-0000-0000-000000004318", name: "Niborio Tent", category: "gear-camp-tents", quantity: 140, price: 420.00, sale: true, } ];Insira os documentos usando operações upsert.
// Insert documents with upsert for (const product of products) { const filter = { _id: product._id }; const options = { upsert: true }; await collection.replaceOne(filter, product, options); console.log(`Upserted product: ${product.name}`); }// Insert documents with upsert for (const product of products) { const filter = { _id: product._id }; const options = { upsert: true }; await collection.replaceOne(filter, product, options); console.log(`Upserted product: ${product.name}`); }
Recuperar um documento
De seguida, realiza uma operação de leitura pontual para recuperar um documento específico da tua coleção.
Defina o filtro para encontrar um documento específico por ID.
// Retrieve a specific document by ID const filter = { _id: "00000000-0000-0000-0000-000000004018" };// Retrieve a specific document by ID const filter = { _id: "00000000-0000-0000-0000-000000004018" };Execute a consulta e recupere o resultado.
const retrievedProduct = await collection.findOne(filter); if (retrievedProduct) { console.log(`Retrieved product: ${retrievedProduct.name} - $${retrievedProduct.price}`); } else { console.log("Product not found"); }const retrievedProduct = await collection.findOne(filter); if (retrievedProduct) { console.log(`Retrieved product: ${retrievedProduct.name} - $${retrievedProduct.price}`); } else { console.log("Product not found"); }
Consultar documentos
Por fim, consulte múltiplos documentos utilizando a Linguagem de Consulta MongoDB (MQL).
Defina uma consulta para encontrar documentos que correspondam a critérios específicos.
// Query for products on sale const saleFilter = { sale: true }; const saleProducts = await collection.find(saleFilter).toArray();// Query for products on sale const saleFilter = { sale: true }; const saleProducts = await collection.find(saleFilter).toArray();Itere pelos resultados para mostrar os documentos correspondentes.
console.log("Products on sale:"); for (const product of saleProducts) { console.log(`- ${product.name}: $${product.price.toFixed(2)} (Category: ${product.category})`); } } catch (error) { console.error("An error occurred:", error); } finally { await client.close(); } } main().catch(console.error);console.log("Products on sale:"); for (const product of saleProducts) { console.log(`- ${product.name}: $${product.price.toFixed(2)} (Category: ${product.category})`); } } catch (error) { console.error("An error occurred:", error); } finally { await client.close(); } } main().catch(console.error);
Explore os seus dados usando o Visual Studio Code
Utilize a extensão DocumentDB no Visual Studio Code para realizar operações centrais na base de dados, incluindo consultas, inserção, atualização e eliminação de dados.
Abra o Visual Studio Code.
Navegue até à vista Extensões e pesquise o termo
DocumentDB. Localize a extensão DocumentDB para VS Code.Selecione o botão Instalar para a extensão. Aguarde a conclusão da instalação. Recarregue o Visual Studio Code, se pedido.
Navegue até à extensão DocumentDB selecionando o ícone correspondente na Barra de Atividade.
No painel de Ligações do DocumentDB , selecione + Nova Ligação....
No diálogo, selecione Descoberta de Serviços e depois Azure DocumentDB - Azure Descoberta de Serviços.
Selecione a sua subscrição Azure e o seu cluster Azure DocumentDB recém-criado.
Sugestão
Em muitos ambientes corporativos, os endereços IP da máquina do desenvolvedor são ocultos devido a uma VPN ou outras configurações de rede corporativa. Nestes casos, pode permitir temporariamente o acesso a todos os endereços IP adicionando o intervalo
0.0.0.0-255.255.255.255de endereços IP como uma regra de firewall. Use esta regra do firewall apenas temporariamente como parte dos testes e desenvolvimento de ligações. Para obter mais informações, consulte Configurar firewall.De volta ao painel de Conexões do DocumentDB , expanda o nó do seu cluster e navegue até aos nós existentes de documentos e coleções.
Abra o menu contextual da coleção e depois selecione DocumentDB Scrapbook > New DocumentDB Scrapbook.
Insira os seguintes comandos da Linguagem de Consulta MongoDB (MQL) e depois selecione Executar Tudo. Observe a saída dos comandos.
db.products.find({ price: { $gt: 200 }, sale: true }) .sort({ price: -1 }) .limit(3)
Limpeza de recursos
Quando terminares com o cluster Azure DocumentDB, podes eliminar os recursos Azure que criaste para não incorreres em mais encargos.
Na barra de pesquisa do portal do Azure, procure e selecione Grupos de recursos.
Na lista, selecione o grupo de recursos usado para este início rápido.
Na página do grupo de recursos, selecione Excluir grupo de recursos.
Na caixa de diálogo de confirmação de exclusão, digite o nome do grupo de recursos para confirmar que você pretende excluí-lo. Por fim, selecione Excluir para excluir permanentemente o grupo de recursos.