Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
BERLAKU UNTUK: MongoDB
Server MongoDB Anda di Azure Cosmos DB tersedia dari paket npm umum untuk MongoDB seperti:
Catatan
Contoh cuplikan kode tersedia di GitHub sebagai proyek JavaScript.
API untuk dokumentasi | referensi MongoDB Paket MongoDB (npm)
Memberi nama database
Di Azure Cosmos DB, database dianalogikan dengan namespace layanan. Saat Anda membuat database, nama database membentuk segmen URI yang digunakan untuk mengakses sumber daya database dan sumber daya turunan apa pun.
Berikut beberapa aturan cepat saat memberi nama database:
Setelah dibuat, URI untuk database berada dalam format ini:
https://<cosmos-account-name>.documents.azure.com/dbs/<database-name>
Dapatkan instans database
Database menyimpan koleksi dan dokumennya. Gunakan instans Db
kelas untuk mengakses database di server.
Cuplikan kode berikut mengasumsikan Anda telah membuat koneksi klien dan menutup koneksi klien Anda setelah cuplikan kode ini.
Mendapatkan informasi server
Akses kelas Admin untuk mengambil informasi server. Anda tidak perlu menentukan nama database dalam metode db
. Informasi yang dikembalikan khusus untuk MongoDB dan tidak mewakili platform Azure Cosmos DB itu sendiri.
// 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`)}`
);
Cuplikan kode sebelumnya menampilkan contoh output konsol berikut:
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
Apakah database ada?
Driver MongoDB asli untuk JavaScript membuat database jika database tersebut belum tersedia saat Anda mengaksesnya. Jika Anda lebih suka mengetahui keberadaan database sebelum menggunakannya, dapatkan daftar database saat ini dan filter namanya:
// 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}`;
}
Cuplikan kode sebelumnya menampilkan contoh output konsol berikut:
Database exists: adventureworks
Mendapatkan daftar database, koleksi, dan jumlah dokumen
Saat Anda mengelola server MongoDB secara terprogram, hal tersebut sangat membantu untuk mengetahui database apa dan koleksi apa yang ada di server dan berapa banyak dokumen di setiap koleksi.
- 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`);
}
}
Cuplikan kode sebelumnya menampilkan contoh output konsol berikut:
Databases:
adventureworks
Collections:
products: 1 doc(s)
oldmain
Collections:
central: 0 doc(s)
done
Mendapatkan instans objek database
Untuk mendapatkan instans objek database, gunakan metode berikut. Metode ini menerima nama database opsional dan dapat menjadi bagian dari rantai.
Database dibuat saat diakses. Cara paling umum untuk mengakses database baru adalah dengan menambahkan dokumen ke koleksi. Dalam satu baris kode yang menggunakan objek berantai, database, koleksi, dan dokumen dibuat.
const insertOneResult = await client.db("adventureworks").collection("products").insertOne(doc);
Pelajari selengkapnya tentang bekerja dengan koleksi dan dokumen.
Letakkan Database
Database dihapus dari server menggunakan metode dropDatabase pada kelas DB.
// Drop a database, removing it permanently from the server.
const dropDatabase = await client.db('adventureworks').dropDatabase();
console.log(`Drop database:\t${JSON.stringify(dropDatabase)}`);
Cuplikan kode sebelumnya menampilkan contoh output konsol berikut:
Drop database: true
done