مشاركة عبر


إدارة قاعدة بيانات MongoDB باستخدام JavaScript

ينطبق على: 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 برمجيًا، من الجيد معرفة قواعد البيانات والمجموعات الموجودة على الخادم وعدد المستندات في كل مجموعة.

// 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

(راجع أيضًا )