ملاحظة
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تسجيل الدخول أو تغيير الدلائل.
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تغيير الدلائل.
ينطبق على: MongoDB
يتوفر خادم MongoDB في Azure Cosmos DB من حزم npm الشائعة ل MongoDB مثل:
إشعار
تتوفر القصاصات البرمجية المثال على GitHub كمشروع JavaScript.
API للوثائق | المرجعية MongoDB حزمة MongoDB (npm)
تسمية قاعدة بيانات
في قاعدة بيانات Azure Cosmos DB، تشبه قاعدة البيانات مساحة الاسم. عند إنشاء قاعدة بيانات، يشكّل اسم قاعدة البيانات مقطعًا من عنوان URI المستخدم للوصول إلى مورد قاعدة البيانات وأي موارد فرعية.
فيما يلي بعض القواعد السريعة عند تسمية قاعدة بيانات:
بمجرد الإنشاء، يكون عنوان URI لقاعدة البيانات بهذا التنسيق:
https://<cosmos-account-name>.documents.azure.com/dbs/<database-name>
الحصول على مثيل قاعدة البيانات
تحتوي قاعدة البيانات على المجموعات ومستنداتها. استخدم مثيل الفئة Db
للوصول إلى قواعد البيانات على الخادم.
تفترض قصاصات التعليمات البرمجية التالية أنك قمت بالفعل بإنشاء اتصال العميلالخاص بك وأنك تغلق اتصال العميل بعد هذه القصاصات البرمجية.
الحصول على معلومات الخادم
الوصول إلى فئة مسؤول لاسترداد معلومات الخادم. لا تحتاج إلى تحديد اسم قاعدة البيانات في الأسلوب db
. المعلومات التي يتم إرجاعها خاصة بـ MongoDB ولا تمثل النظام الأساسي Azure Cosmos DB نفسه.
// 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`)}`
);
تعرض القصاصة البرمجية السابقة إخراج وحدة التحكم المثال التالي:
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
هل توجد قاعدة بيانات؟
يقوم برنامج تشغيل MongoDB الأصلي لـ JavaScript بإنشاء قاعدة البيانات إذا لم تكن موجودة عند الوصول إليها. إذا كنت تفضل معرفة ما إذا كانت قاعدة البيانات موجودة بالفعل قبل استخدامها، فاحصل على قائمة قواعد البيانات الحالية وتصفية الاسم:
// 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}`;
}
تعرض القصاصة البرمجية السابقة إخراج وحدة التحكم المثال التالي:
Database exists: adventureworks
الحصول على قائمة بقواعد البيانات والمجموعات وعدد المستندات
عندما تدير خادم MongoDB برمجيًا، من الجيد معرفة قواعد البيانات والمجموعات الموجودة على الخادم وعدد المستندات في كل مجموعة.
- 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`);
}
}
تعرض القصاصة البرمجية السابقة إخراج وحدة التحكم المثال التالي:
Databases:
adventureworks
Collections:
products: 1 doc(s)
oldmain
Collections:
central: 0 doc(s)
done
الحصول على مثيل كائن قاعدة البيانات
للحصول على مثيل كائن قاعدة بيانات، قم باستدعاء الأسلوب التالي. يقبل هذ الأسلوب اسم قاعدة بيانات اختياري ويمكن أن تكون جزءًا من سلسلة.
يتم إنشاء قاعدة بيانات عند الوصول إليها. الطريقة الأكثر شيوعًا للوصول إلى قاعدة بيانات جديدة هي إضافة مستند إلى مجموعة. في سطر واحد من التعليمات البرمجية باستخدام الكائنات المتسلسلة، يتم إنشاء قاعدة البيانات والمجموعة والمستندات.
const insertOneResult = await client.db("adventureworks").collection("products").insertOne(doc);
تعرّف على المزيد حول استخدام المجموعات والمستندات.
قم بإسقاط قاعدة بيانات
تتم إزالة قاعدة بيانات من الخادم باستخدام أسلوب dropDatabase على فئة قاعدة البيانات.
// Drop a database, removing it permanently from the server.
const dropDatabase = await client.db('adventureworks').dropDatabase();
console.log(`Drop database:\t${JSON.stringify(dropDatabase)}`);
تعرض القصاصة البرمجية السابقة إخراج وحدة التحكم المثال التالي:
Drop database: true
done