Jegyzet
Az oldalhoz való hozzáférés engedélyezést igényel. Próbálhatod be jelentkezni vagy könyvtárat váltani.
Az oldalhoz való hozzáférés engedélyezést igényel. Megpróbálhatod a könyvtár váltását.
Ebben a rövid útmutatóban egy alapszintű Azure DocumentDB-alkalmazást hoz létre Node.jshasználatával. Az Azure DocumentDB egy NoSQL-adattár, amellyel az alkalmazások a felhőben tárolhatják a dokumentumokat, és hivatalos MongoDB-illesztőprogramokkal érhetik el őket. Ez az útmutató bemutatja, hogyan hozhat létre dokumentumokat, és hogyan hajthat végre alapvető feladatokat az Azure DocumentDB-fürtben Node.jshasználatával.
API-referencia | Forráskód | Csomag (npm)
Előfeltételek
Azure-előfizetés
- Ha nem rendelkezik Azure-előfizetéssel, hozzon létre egy ingyenes fiókot
- Node.js 22 vagy újabb
Hozzon létre egy Azure DocumentDB-fürtöt
Első lépésként létre kell hoznia egy Azure DocumentDB-fürtöt, amely a NoSQL-adatok tárolásának és kezelésének alapja.
Jelentkezzen be az Azure Portalra (https://portal.azure.com).
Az Azure Portal menüjében vagy a Kezdőlapon válassza az Erőforrás létrehozása elemet.
Az Új lapon keresse meg és válassza ki az Azure DocumentDB-t.
Az Azure DocumentDB-fürt létrehozása oldal Alapok szakaszában válassza a Fürtszint szakaszban a Konfigurálás lehetőséget.
A Méretezés lapon konfigurálja ezeket a beállításokat, majd válassza a Mentés lehetőséget a fürtszintre vonatkozó módosítások megőrzéséhez.
Érték Fürtszint M30 tier, 2 vCore, 8-GiB RAMTárterület szegmensenként 128 GiB
Az Alapok szakaszban konfigurálja a következő beállításokat:
Érték Subscription Az Azure-előfizetés kiválasztása Erőforráscsoport Új erőforráscsoport létrehozása vagy meglévő erőforráscsoport kiválasztása Fürt neve Globálisan egyedi név megadása Location Válasszon egy támogatott Azure-régiót az előfizetéséhez MongoDB-verzió A következők szerint válasszon: 8.0Rendszergazdai felhasználónév Felhasználónév létrehozása a fürt felhasználói rendszergazdaként való eléréséhez Jelszó A felhasználónévhez társított egyedi jelszó használata
Jótanács
Jegyezze fel a felhasználónévhez és jelszóhoz használt értékeket. Ezeket az értékeket az útmutató későbbi részében használjuk. Az érvényes értékekkel kapcsolatos további információkért tekintse meg a fürt korlátait.
Válassza ki a Tovább: Hálózatkezelés lehetőséget.
A Hálózatkezelés lap Tűzfalszabályok szakaszában konfigurálja az alábbi beállításokat:
Érték Kapcsolati módszer Public accessNyilvános hozzáférés engedélyezése az Azure-ban lévő Azure-szolgáltatásokból és erőforrásokból ehhez a fürthöz Engedélyezett Adjon hozzá egy tűzfalszabályt a jelenlegi klienseszközhöz, hogy hozzáférést biztosítson a fürthöz a + Jelenlegi kliens IP-cím hozzáadása lehetőség kiválasztásával.
Jótanács
Számos vállalati környezetben a fejlesztői gép IP-címei vpn vagy más vállalati hálózati beállítások miatt rejtve vannak. Ezekben az esetekben ideiglenesen engedélyezheti az összes IP-cím elérését az
0.0.0.0-255.255.255.255IP-címtartomány tűzfalszabályként való hozzáadásával. Ezt a tűzfalszabályt csak ideiglenesen használja a kapcsolattesztelés és -fejlesztés részeként.Válassza az Áttekintés + létrehozás lehetőséget.
Tekintse át a megadott beállításokat, majd kattintson a Létrehozás-ra. A klaszter létrehozása néhány percet vesz igénybe. Várjon, amíg az erőforrás üzembe helyezése befejeződött.
Végül válassza a Menjen az erőforráshoz lehetőséget, hogy navigáljon az Azure DocumentDB-fürthöz a portálon.
Szerezze be a fürt hitelesítő adatait
Szerezd be a fürthöz való csatlakozáshoz használt hitelesítő adatokat.
A fürtoldalon válassza a Kapcsolati láncokat lehetőséget az erőforrás menüjében.
A Kapcsolati sztringek szakaszban másolja vagy rögzítse a Kapcsolati sztring mező értékét.
Fontos
A portál kapcsolati sztringje nem tartalmazza a jelszó értékét. A <password> helyettesítő szöveget le kell cserélnie a fürt létrehozásakor megadott hitelesítő adatokkal, vagy interaktívan be kell írnia a jelszót.
A projekt inicializálása
Hozzon létre egy új Node.js projektet az aktuális könyvtárban.
Kezdje egy üres mappában.
Nyisson egy terminált az aktuális könyvtárban.
Inicializáljon egy Node.js projektet.
npm init -yTelepítse a TypeScriptet, és inicializálja a TypeScript-konfigurációt (a TypeScript-támogatás nem kötelező).
npm install -D typescript @types/node npx tsc --init
Telepítse a klienskönyvtárat
Az ügyfélkódtár az npm-ben érhető el csomagként mongodb .
Telepítse a MongoDB Node.js illesztőprogramot az npm használatával.
npm install mongodbNyissa meg és tekintse át a package.json fájlt annak ellenőrzéséhez, hogy a csomagbejegyzés létezik-e.
Importálja a szükséges modulokat az alkalmazáskódba:
import { MongoClient, Db, Collection, Document } from 'mongodb';const { MongoClient } = require('mongodb');
Objektummodell
| Név | Description |
|---|---|
MongoClient |
A MongoDB-hez való csatlakozáshoz használt típus. |
Db |
Egy adatbázist jelöl a klaszterben. |
Collection<Document> |
Egy adatbázison belüli gyűjteményt jelöl a fürtben. |
Példakódok
- Az ügyfél hitelesítése
- Gyűjtemény lekérése
- Dokumentum létrehozása
- Dokumentum lekérése
- Dokumentumok lekérdezése
Az alkalmazás kódja egy elnevezett adventureworks adatbázishoz és egy nevű productsgyűjteményhez csatlakozik. A products gyűjtemény olyan részleteket tartalmaz, mint a név, a kategória, a mennyiség, az egyedi azonosító és az egyes termékekhez tartozó értékesítési jelző. Az itt található kódminták a leggyakoribb műveleteket hajtják végre a gyűjtemények használatakor.
Az ügyfél hitelesítése
Először csatlakozzon az ügyfélhez egy egyszerű kapcsolati sztring használatával.
Hozza létre a fő függvényt, és állítsa be a kapcsolati sztringet. Cserélje le
<your-cluster-name>,<your-username>és<your-password>a tényleges fürtinformációkkal.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);Csatlakozzon a MongoDB-ügyfélhez, és ellenőrizze a kapcsolatot.
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");
Gyűjtemény lekérése
Most szerezze be az adatbázist és a gyűjteményt. Ha az adatbázis és a gyűjtemény még nem létezik, az illesztővel automatikusan létrehozhatja.
Az adatbázisra mutató hivatkozás lekérése.
// 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}`);Az adatbázison belüli gyűjteményre mutató hivatkozás lekérése.
// 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");
Dokumentum létrehozása
Ezután hozzon létre néhány új dokumentumot a gyűjteményben. A dokumentumokat úgy állíthatja be, hogy az lecserélje a meglévő dokumentumokat, ha már léteznek ugyanazzal az egyedi azonosítóval.
Mintatermék-dokumentumok létrehozása.
// 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, } ];Helyezze be a dokumentumokat "upsert" műveletek használatával.
// 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}`); }
Dokumentum lekérése
Ezután végezzen pontolvasási műveletet egy adott dokumentum gyűjteményből való lekéréséhez.
Adja meg a szűrőt egy adott dokumentum azonosító alapján való megkereséséhez.
// 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" };Hajtsa végre a lekérdezést, és kérje le az eredményt.
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"); }
Dokumentumok lekérdezése
Végül több dokumentumot is lekérdezhet a MongoDB lekérdezési nyelv (MQL) használatával.
Lekérdezés definiálása adott feltételeknek megfelelő dokumentumok megkereséséhez.
// 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();Iterálja végig az eredményeket az egyező dokumentumok megjelenítéséhez.
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);
Adatok felfedezése a Visual Studio Code használatával
A Visual Studio Code DocumentDB bővítményével alapvető adatbázis-műveleteket hajthat végre, beleértve az adatok lekérdezését, beszúrását, frissítését és törlését.
Nyissa meg a Visual Studio Code-ot.
Lépjen a Bővítmények nézetre, és keresse meg a kifejezést
DocumentDB. Keresse meg a DocumentDB for VS Code bővítményt .Válassza a bővítmény Telepítés gombját. Várja meg, amíg a telepítés befejeződik. Töltse újra a Visual Studio kódot, ha erre felszólítják.
Lépjen a DocumentDB bővítményre a tevékenységsáv megfelelő ikonjának kiválasztásával.
A DocumentDB-kapcsolatok panelen válassza az + Új kapcsolat... lehetőséget.
A párbeszédpanelen válassza a Service Discovery , majd az Azure DocumentDB – Azure Service Discovery lehetőséget.
Válassza ki az Azure-előfizetését és az újonnan létrehozott Azure DocumentDB-fürtöt.
Jótanács
Számos vállalati környezetben a fejlesztői gép IP-címei vpn vagy más vállalati hálózati beállítások miatt rejtve vannak. Ezekben az esetekben ideiglenesen engedélyezheti az összes IP-cím elérését az
0.0.0.0-255.255.255.255IP-címtartomány tűzfalszabályként való hozzáadásával. Ezt a tűzfalszabályt csak ideiglenesen használja a kapcsolattesztelés és -fejlesztés részeként. További információ: tűzfal konfigurálása.Visszatérve a DocumentDB-kapcsolatok panelre, bontsa ki a fürt csomópontját, és keresse meg a meglévő dokumentum- és gyűjteménycsomópontokat.
Nyissa meg a gyűjtemény helyi menüjét, majd válassza a DocumentDB Scrapbook > New DocumentDB Scrapbook lehetőséget.
Adja meg a következő MongoDB lekérdezési nyelv (MQL) parancsokat, majd válassza az Összes futtatása lehetőséget. Figyelje meg a parancsok kimenetét.
db.products.find({ price: { $gt: 200 }, sale: true }) .sort({ price: -1 }) .limit(3)
Erőforrások tisztítása
Ha végzett az Azure DocumentDB-fürttel, törölheti a létrehozott Azure-erőforrásokat, így nem kell további díjakat fizetnie.
Az Azure Portal keresősávján keresse meg és válassza ki az erőforráscsoportokat.
A listában válassza ki a rövid útmutatóhoz használt erőforráscsoportot.
Az erőforráscsoport lapján válassza az Erőforráscsoport törlése lehetőséget.
A törlés megerősítését kérő párbeszédpanelen adja meg az erőforráscsoport nevét annak megerősítéséhez, hogy törölni kívánja azt. Végül válassza a Törlés lehetőséget az erőforráscsoport végleges törléséhez.