Not
Åtkomst till denna sida kräver auktorisation. Du kan prova att logga in eller byta katalog.
Åtkomst till denna sida kräver auktorisation. Du kan prova att byta katalog.
I den här snabbstarten skapar du ett grundläggande Azure DocumentDB-program med hjälp av Node.js. Azure DocumentDB är ett NoSQL-datalager som gör att program kan lagra dokument i molnet och komma åt dem med hjälp av officiella MongoDB-drivrutiner. Den här guiden visar hur du skapar dokument och utför grundläggande uppgifter i ditt Azure DocumentDB-kluster med hjälp av Node.js.
API-referens | Källkod | Paket (npm)
Förutsättningar
En prenumeration på Azure
- Om du inte har någon Azure-prenumeration kan du skapa ett kostnadsfritt konto
- Node.js 22 eller senare
Skapa ett Azure DocumentDB-kluster
För att komma igång måste du först skapa ett Azure DocumentDB-kluster som fungerar som grund för att lagra och hantera dina NoSQL-data.
Logga in på Azure-portalen (https://portal.azure.com).
I menyn i Azure-portalen eller på sidan Start väljer du Skapa en resurs.
På sidan Ny söker du efter och väljer Azure DocumentDB.
På sidan Skapa Azure DocumentDB-kluster och i avsnittet Grundläggande väljer du alternativet Konfigurera i avsnittet Klusternivå .
På sidan Skala konfigurerar du de här alternativen och väljer sedan Spara för att spara ändringarna på klusternivån.
Värde Klusternivå M30 tier, 2 vCore, 8-GiB RAMLagring per shard 128 GiB
I avsnittet Grundläggande konfigurerar du följande alternativ:
Värde Subscription Välj din Azure-prenumeration resursgrupp Skapa en ny resursgrupp eller välj en befintlig resursgrupp Klusternamn Ange ett globalt unikt namn Läge Välj en Azure-region som stöds för din prenumeration MongoDB-version Välj 8.0Användarnamn för administratör Skapa ett användarnamn för att komma åt klustret som användaradministratör Lösenord Använda ett unikt lösenord som är associerat med användarnamnet
Tips/Råd
Registrera de värden som du använder för användarnamn och lösenord. Dessa värden används senare i den här guiden. Mer information om giltiga värden finns i klusterbegränsningar.
Välj Nästa: Nätverk.
I avsnittet Brandväggsregler på fliken Nätverk konfigurerar du följande alternativ:
Värde Anslutningsmetod Public accessTillåt offentlig åtkomst från Azure-tjänster och resurser i Azure till det här klustret Aktiverad Lägg till en brandväggsregel för den aktuella klientenheten för att bevilja åtkomst till klustret genom att välja + Lägg till aktuell klient-IP-adress.
Tips/Råd
I många företagsmiljöer är IP-adresser för utvecklardatorer dolda på grund av ett VPN eller andra företagsnätverksinställningar. I dessa fall kan du tillfälligt tillåta åtkomst till alla IP-adresser genom att lägga till IP-adressintervallet
0.0.0.0-255.255.255.255som en brandväggsregel. Använd endast den här brandväggsregeln tillfälligt som en del av anslutningstestning och utveckling.Välj Förhandsgranska + skapa.
Granska de inställningar du anger och välj sedan Skapa. Det tar några minuter att skapa klustret. Vänta tills resursdistributionen är klar.
Välj slutligen Gå till resurs för att navigera till Azure DocumentDB-klustret i portalen.
Hämta klusterautentiseringsuppgifter
Hämta de autentiseringsuppgifter som du använder för att ansluta till klustret.
På klustersidan väljer du alternativet Anslutningssträngar på resursmenyn.
I avsnittet Anslutningssträngar kopierar eller registrerar du värdet från fältet Anslutningssträng .
Viktigt!
Anslutningssträngen i portalen innehåller inte lösenordsvärdet. Du måste ersätta <password> platshållaren med de autentiseringsuppgifter som du angav när du skapade klustret eller ange lösenordet interaktivt.
Initiera projektet
Skapa ett nytt Node.js projekt i den aktuella katalogen.
Börja i en tom katalog.
Öppna en terminal i den aktuella katalogen.
Initiera ett Node.js projekt.
npm init -yInstallera TypeScript och initiera TypeScript-konfigurationen (valfritt för TypeScript-stöd).
npm install -D typescript @types/node npx tsc --init
Installera klientbiblioteket
Klientbiblioteket är tillgängligt via npm som mongodb paket.
Installera MongoDB-Node.js drivrutinen med npm.
npm install mongodbÖppna och granska filenpackage.json för att verifiera att paketposten finns.
Importera de moduler som krävs till programkoden:
import { MongoClient, Db, Collection, Document } from 'mongodb';const { MongoClient } = require('mongodb');
Objektmodell
| Namn | Description |
|---|---|
MongoClient |
Typ som används för att ansluta till MongoDB. |
Db |
Representerar en databas i klustret. |
Collection<Document> |
Representerar en samling i en databas i klustret. |
Kodexempel
Koden i det här programmet ansluter till en databas med namnet adventureworks och en samling med namnet products. Samlingen products innehåller information som namn, kategori, kvantitet, en unik identifierare och en försäljningsflagga för varje produkt. Kodexemplen här utför de vanligaste åtgärderna när du arbetar med en samling.
Autentisera klienten
Anslut först till klienten med en grundläggande anslutningssträng.
Skapa huvudfunktionen och konfigurera anslutningssträngen. Ersätt
<your-cluster-name>,<your-username>och<your-password>med din faktiska klusterinformation.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);Anslut till MongoDB-klienten och verifiera anslutningen.
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");
Hämta en samling
Hämta nu databasen och samlingen. Om databasen och samlingen inte redan finns använder du drivrutinen för att skapa den automatiskt.
Hämta en referens till databasen.
// 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}`);Hämta en referens till samlingen i databasen.
// 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");
Skapa ett dokument
Skapa sedan ett par nya dokument i samlingen. Anslut dokumenten så att de ersätter alla befintliga dokument om de redan finns med samma unika identifierare.
Skapa exempel på produktdokument.
// 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, } ];Infoga dokumenten med hjälp av upsert-åtgärder.
// 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}`); }
Hämta ett dokument
Utför sedan en punktläsningsåtgärd för att hämta ett visst dokument från samlingen.
Definiera filtret för att hitta ett specifikt dokument efter 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" };Kör frågan och hämta resultatet.
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"); }
Sök dokument
Slutligen kör du frågor mot flera dokument med hjälp av MQL (MongoDB Query Language).
Definiera en fråga för att hitta dokument som matchar specifika villkor.
// 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();Iterera genom resultaten för att visa matchande dokument.
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);
Utforska dina data med Hjälp av Visual Studio Code
Använd DocumentDB-tillägget i Visual Studio Code för att utföra grundläggande databasåtgärder, inklusive frågor, infogning, uppdatering och borttagning av data.
Öppna Visual Studio Code.
Navigera till vyn Tillägg och sök efter termen
DocumentDB. Leta upp tillägget DocumentDB för VS Code.Välj knappen Installera för tillägget. Vänta tills installationen har slutförts. Ladda Visual Studio Code igen om du uppmanas att göra det.
Gå till DocumentDB-tillägget genom att välja motsvarande ikon i aktivitetsfältet.
I fönstret DocumentDB-anslutningar väljer du + Ny anslutning....
I dialogrutan väljer du Tjänstidentifiering och sedan Azure DocumentDB – Azure Service Discovery.
Välj din Azure-prenumeration och ditt nyligen skapade Azure DocumentDB-kluster.
Tips/Råd
I många företagsmiljöer är IP-adresser för utvecklardatorer dolda på grund av ett VPN eller andra företagsnätverksinställningar. I dessa fall kan du tillfälligt tillåta åtkomst till alla IP-adresser genom att lägga till IP-adressintervallet
0.0.0.0-255.255.255.255som en brandväggsregel. Använd endast den här brandväggsregeln tillfälligt som en del av anslutningstestning och utveckling. Mer information finns i konfigurera brandväggen.I fönstret DocumentDB-anslutningar expanderar du noden för klustret och navigerar till dina befintliga dokument- och samlingsnoder.
Öppna snabbmenyn för samlingen och välj sedan DocumentDB Scrapbook > New DocumentDB Scrapbook.
Ange följande MQL-kommandon (MongoDB Query Language) och välj sedan Kör alla. Observera utdata från kommandona.
db.products.find({ price: { $gt: 200 }, sale: true }) .sort({ price: -1 }) .limit(3)
Rensa resurser
När du är klar med Azure DocumentDB-klustret kan du ta bort de Azure-resurser som du skapade så att du inte debiteras fler avgifter.
I sökfältet Azure Portal söker du efter och väljer Resursgrupper.
I listan väljer du den resursgrupp som du använde för den här snabbstarten.
På resursgruppssidan väljer du Ta bort resursgrupp.
I dialogrutan för bekräftelse av borttagning anger du namnet på resursgruppen för att bekräfta att du tänker ta bort den. Slutligen väljer du Ta bort för att ta bort resursgruppen permanent.