Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A KÖVETKEZŐKRE VONATKOZIK: MongoDB
Az Azure Cosmos DB-ben található MongoDB-kiszolgáló a MongoDB gyakori npm-csomagjaiból érhető el, például:
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)
Adatbázis elnevezése
Az Azure Cosmos DB-ben az adatbázis egy névtérhez hasonló. Adatbázis létrehozásakor az adatbázis neve az adatbázis-erőforrás és a gyermekerőforrások eléréséhez használt URI egy szegmensét képezi.
Az alábbiakban néhány gyors szabályt talál az adatbázisok elnevezésekor:
A létrehozás után az adatbázis URI-ja a következő formátumban van:
https://<cosmos-account-name>.documents.azure.com/dbs/<database-name>
Adatbázispéldány lekérése
Az adatbázis tartalmazza a gyűjteményeket és azok dokumentumait. Az osztály egy példányával Db érheti el a kiszolgálón lévő adatbázisokat.
Az alábbi kódrészletek feltételezik, hogy már létrehozta az ügyfélkapcsolatot, és a kódrészletek után bezárja az ügyfélkapcsolatot.
Kiszolgálóadatok lekérése
A kiszolgáló adatainak lekéréséhez lépjen a felügyeleti osztályba. A metódusban nem kell megadnia az db adatbázis nevét. A visszaadott információk a MongoDB-re vonatkoznak, és nem magát az Azure Cosmos DB-platformot képviselik.
// Get server build info
const serverInfo = await client.db().admin().serverInfo();
console.log(
`Server info:\n${Object.keys(serverInfo).map(key => `\t${key}: ${serverInfo[key]}\n`)}`
);
// Get server status
// Not supported in vCore
// const serverStatus = await client.db().admin().serverStatus();
// console.log(
// `Server status:\n${Object.keys(serverStatus).map(key => `\t${key}: ${serverStatus[key]}\n`)}`
// );
// List all databases
const dbListResult = await client.db().admin().listDatabases();
console.log(
`Databases:\n${dbListResult.databases.map(db => `\t${db.name}\n`)}`
);
Az előző kódrészlet a következő példakonzol kimenetét jeleníti meg:
Server info:
version: 4.0.0
, versionArray: 4,0,0,0
, bits: 64
, maxBsonObjectSize: 16777216
, ok: 1
Server status:
ok: 1
Databases:
adventureworks
, oldmain
done
Létezik adatbázis?
A JavaScript natív MongoDB-illesztőprogramja létrehozza az adatbázist, ha az nem létezik, amikor ön hozzáfér hozzá. Ha szeretné tudni, hogy az adatbázis már létezik-e a használat előtt, kérje le az aktuális adatbázisok listáját, és szűrjön a névre:
// Get list of databases
const listResult = await client.db().admin().listDatabases();
if (listResult.databases.length === 0) {
return 'No databases found';
}
// does database exist
const lookForDatabase = 'adventureworks';
const dbFound = listResult.databases.find(db => db.name === lookForDatabase);
if (dbFound) {
return `Database exists:\t${lookForDatabase}`;
}
Az előző kódrészlet a következő példakonzol kimenetét jeleníti meg:
Database exists: adventureworks
Adatbázisok, gyűjtemények és dokumentumok számának lekérése
A MongoDB-kiszolgáló programozott kezelésekor hasznos tudni, hogy milyen adatbázisok és gyűjtemények találhatók a kiszolgálón, és hány dokumentum található az egyes gyűjteményekben.
- MongoClient.Db.Admin.listDatabases
- MongoClient.Db.listCollections
- MongoClient.Db.Collection
- MongoClient.Db.Collection.countDocuments
// get list of databases
const listResult = await client.db().admin().listDatabases();
console.log('Databases:\n');
// loop through databases
for await (let database of listResult.databases) {
console.log(`\t${database.name}\n`);
// get database client
const dbClient = client.db(database.name);
// get collections in database
const collections = await dbClient.listCollections();
console.log('\n\t\tCollections:\n');
// loop through collections
for await (let collection of collections) {
// get collection client
const collectionClient = dbClient.collection(collection.name);
// get doc count of collection
const docCount = await collectionClient.countDocuments({});
console.log(`\t\t\t${collection.name}: ${docCount} doc(s)\n`);
}
}
Az előző kódrészlet a következő példakonzol kimenetét jeleníti meg:
Databases:
adventureworks
Collections:
products: 1 doc(s)
oldmain
Collections:
central: 0 doc(s)
done
Adatbázis-objektumpéldány lekérése
Adatbázis-objektumpéldány lekéréséhez hívja meg a következő metódust. Ez a metódus egy nem kötelező adatbázisnevet fogad el, és egy lánc része lehet.
A hozzáféréskor létrejön egy adatbázis. Az új adatbázisok elérésének leggyakoribb módja, ha dokumentumot ad hozzá egy gyűjteményhez. Egy láncolt objektumokat használó kódsorban létrejön az adatbázis, a gyűjtemény és a dokumentum.
const insertOneResult = await client.db("adventureworks").collection("products").insertOne(doc);
További információ a gyűjtemények és dokumentumok használatával kapcsolatban.
Adatbázis elvetése
A rendszer eltávolít egy adatbázist a kiszolgálóról a DB-osztály dropDatabase metódusával.
// Drop a database, removing it permanently from the server.
const dropDatabase = await client.db('adventureworks').dropDatabase();
console.log(`Drop database:\t${JSON.stringify(dropDatabase)}`);
Az előző kódrészlet a következő példakonzol kimenetét jeleníti meg:
Drop database: true
done