Ismerkedés a MongoDB-hez készült Azure Cosmos DB-vel JavaScript használatával
A KÖVETKEZŐKRE VONATKOZIK: MongoDB
Ez a cikk bemutatja, hogyan csatlakozhat a MongoDB-hez készült Azure Cosmos DB-hez a natív MongoDB natív npm-csomag használatával. A csatlakozás után műveleteket hajthat végre adatbázisokon, gyűjteményeken és dokumentumokon.
Feljegyzés
A példakódrészletek JavaScript-projektként érhetők el a GitHubon.
A MongoDB-hez készült API referenciadokumentációja | MongoDB-csomag (npm)
Előfeltételek
- Egy Azure-fiók, aktív előfizetéssel. Fiók ingyenes létrehozása.
- Node.js LTS
- Azure Parancssori felület (CLI) vagy Azure PowerShell
- Azure Cosmos DB for MongoDB-erőforrás
Új JavaScript-alkalmazás létrehozása
Hozzon létre egy új JavaScript-alkalmazást egy üres mappában az előnyben részesített terminál használatával.
npm init
A parancs használatával elindíthatja a kéréseket apackage.json
fájl létrehozásához. Fogadja el a kérések alapértelmezett értékét.npm init
Adja hozzá a MongoDB npm-csomagot a JavaScript-projekthez. Használja az
npm install package
npm-csomag nevét meghatározó parancsot. Adotenv
csomag a környezeti változók fájlból való beolvasására szolgál a.env
helyi fejlesztés során.npm install mongodb dotenv
Az alkalmazás futtatásához egy terminál használatával lépjen az alkalmazás könyvtárára, és futtassa az alkalmazást.
node index.js
Csatlakozás natív MongoDB-illesztővel a MongoDB-hez készült Azure Cosmos DB-hez
Ha natív MongoDB-illesztővel szeretne csatlakozni az Azure Cosmos DB-hez, hozza létre az osztály egy példányát MongoClient
. Ez az osztály a kiindulópont az adatbázisokon végzett összes művelet végrehajtásához.
A MongoClient leggyakoribb konstruktorának két paramétere van:
Paraméter | Példaérték | Leírás |
---|---|---|
url |
COSMOS_CONNECTION_STRING környezeti változó |
A MongoDB-hez készült API kapcsolati sztring minden kéréshez használható |
options |
{ssl: true, tls: true, } |
MongoDB-beállítások a kapcsolathoz. |
A csatlakozási problémák hibaelhárítási útmutatójában tájékozódhat.
Erőforrásnév lekérése
Hozzon létre egy rendszerhéjváltozót a resourceGroupName számára.
# Variable for resource group name resourceGroupName="msdocs-cosmos"
az cosmosdb list
A paranccsal lekérheti az erőforráscsoport első Azure Cosmos DB-fiókjának nevét, és tárolhatja az accountName rendszerhéj változójában.# Retrieve most recently created account name accountName=$( az cosmosdb list \ --resource-group $resourceGroupName \ --query "[0].name" \ --output tsv )
A kapcsolati sztring lekérése
Keresse meg a MongoDB API-kapcsolati sztring a parancsot tartalmazó
az cosmosdb keys list
fiók kapcsolati sztring listájából.az cosmosdb keys list --type connection-strings \ --resource-group $resourceGroupName \ --name $accountName
Jegyezze fel az ELSŐDLEGES KULCS értékeket. Ezeket a hitelesítő adatokat később fogja használni.
Környezeti változók konfigurálása
A KAPCSOLATI SZTRING értékeinek a kódban való használatához állítsa be ezt az értéket az alkalmazást futtató helyi környezetben. A környezeti változó beállításához használja az előnyben részesített terminált a következő parancsok futtatásához:
$env:COSMOS_CONNECTION_STRING = "<cosmos-connection-string>"
MongoClient létrehozása kapcsolati sztring
Add dependencies to reference the MongoDB and DotEnv npm packages.
// Read .env file and set environment variables require('dotenv').config(); // Use official mongodb driver to connect to the server const { MongoClient } = require('mongodb');
Definiálja az osztály új példányát a
MongoClient
konstruktor használatával, ésprocess.env.
használja a kapcsolati sztring.// 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`)}`);
A példányok létrehozásának MongoClient
különböző módjairól a MongoDB NodeJS-illesztőprogram rövid útmutatója nyújt további információt.
A MongoClient-kapcsolat bezárása
Ha az alkalmazás befejezte a kapcsolatot, ne felejtse el bezárni. A .close()
hívásnak az összes adatbázis-hívás után kell lennie.
client.close()
MongoDB-ügyfélosztályok használata a MongoDB-hez készült Azure Cosmos DB for API-val
Mielőtt elkezdené az alkalmazást, nézzük meg az Azure Cosmos DB-ben található erőforrások hierarchiáját. Az Azure Cosmos DB egy adott objektummodellt használ erőforrások létrehozásához és eléréséhez. Az Azure Cosmos DB olyan hierarchiában hoz létre erőforrásokat, amelyek fiókokból, adatbázisokból, gyűjteményekből és dokumentumokból állnak.
Hierarchikus diagram egy Azure Cosmos DB DB-fiókot ábrázol felül. A fióknak két gyermekadatbázis-csomópontja van. Az adatbázis-csomópontok egyike két gyermekgyűjteményi csomópontot tartalmaz. A másik adatbáziscsomópont egyetlen gyermekgyűjteményi csomópontot tartalmaz. Az egyetlen gyűjteménycsomópont három gyermek-dokumentumcsomópontból áll.
Minden erőforrástípust egy vagy több társított JavaScript-osztály jelöl. Íme a leggyakoribb osztályok listája:
Osztály | Leírás |
---|---|
MongoClient |
Ez az osztály ügyféloldali logikai reprezentációt biztosít a MongoDB API-réteghez az Azure Cosmos DB-ben. Az ügyfélobjektum a szolgáltatással kapcsolatos kérések konfigurálására és végrehajtására szolgál. |
Db |
Ez az osztály egy olyan adatbázisra mutató hivatkozás, amely lehet, hogy még létezik a szolgáltatásban. Az adatbázis kiszolgálóoldali érvényesítve van, amikor megpróbálja elérni, vagy műveletet hajt végre rajta. |
Collection |
Ez az osztály olyan gyűjteményre hivatkozik, amely még nem létezik a szolgáltatásban. A gyűjtemény kiszolgálóoldali érvényesítve lesz, amikor megpróbál dolgozni vele. |
Az alábbi útmutatók bemutatják, hogyan használhatja ezeket az osztályokat az alkalmazás létrehozásához.
Útmutató:
- Adatbázisok kezelése
- Gyűjtemények kezelése
- Dokumentumok kezelése
- Dokumentumok keresése lekérdezésekkel
Lásd még
Következő lépések
Most, hogy csatlakozott egy MongoDB-fiókhoz készült API-hoz, a következő útmutató segítségével hozhat létre és kezelhet adatbázisokat.