البرمجة

تحسين أداء إدراج البيانات في MongoDB باستخدام Mongoose

في عمليات إدراج البيانات الضخمة في قاعدة بيانات MongoDB باستخدام Mongoose، يمكن تحسين الأداء بشكل كبير عن طريق استخدام عمليات الإدراج الجماعي أو الـ Bulk Insert. على الرغم من أن Mongoose لا يقدم واجهة واضحة لعمليات الإدراج الجماعي، إلا أنه يمكن استخدام واجهة MongoDB الرسمية لتحقيق هذا الهدف.

في هذه الحالة، يُفضل استخدام insertMany، وهي واجهة MongoDB تمكن من إدراج مصفوفة من الوثائق في مجموعة واحدة. يمكن تطبيقها كما يلي:

javascript
// قم بتحويل مصفوفة البيانات إلى مصفوفة من الوثائق Mongoose const documents = myData.map(obj => new Collection1(obj)); // استخدم واجهة insertMany لإدراج الوثائق بشكل جماعي Collection1.insertMany(documents, function(error, result) { if (error) { console.error('Error while bulk inserting: ' + error); } else { console.log('Bulk insert successful'); console.log(result); // يحتوي على تفاصيل الإدراج الجماعي } });

تحتوي insertMany على واجهة إعادة الاتصال الاختيارية، والتي يمكنك استخدامها لتحديد سلوك الإدراج الجماعي. يُفضل أيضًا التحقق من إدراج الوثائق بنجاح باستخدام تفاصيل الاستجابة التي تعود من الدالة الرد الارتباطية.

تذكر أن هذه الطريقة تُحدث العديد من الوثائق دفعة واحدة، مما يقلل من الوقت اللازم للإدراج.

المزيد من المعلومات

عند التعامل مع كميات كبيرة من البيانات في MongoDB باستخدام Mongoose، يمكن تحسين أداء إدراج البيانات باستخدام عملية الإدراج الجماعي أو Bulk Insert. في الحالة الحالية، يقوم الكود بتكرار عملية الإدراج لكل عنصر في المصفوفة، وهو أمر غير فعال عندما يكون حجم البيانات كبيرًا.

للقيام بإدراج البيانات بشكل جماعي، يمكنك استخدام واجهة MongoDB الأساسية للقيام بعمليات الإدراج الجماعي. يتيح لك Mongoose استخدام واجهة MongoDB الأساسية مباشرة. فيما يلي كيفية تحسين الكود:

javascript
// Import mongoose const mongoose = require('mongoose'); // Connect to MongoDB mongoose.connect('mongodb://localhost:27017/your-database-name', { useNewUrlParser: true, useUnifiedTopology: true }); // Define your schema const yourSchema = new mongoose.Schema({ // Define your schema fields here // For example: name: String, age: Number, ... }); // Create your model const Collection1 = mongoose.model('Collection1', yourSchema); // Your array of objects const myData = [Obj1, Obj2, Obj3, /* ... */]; // Use the insertMany function for bulk insert Collection1.insertMany(myData, function (err, result) { if (err) { console.error('Error while bulk inserting:', err); } else { console.log('Data successfully inserted:', result); } // Close the MongoDB connection after insertion mongoose.connection.close(); });

في هذا الكود، يتم استخدام insertMany لإدراج جميع البيانات في مصفوفة myData دفعة واحدة. كما يتم إنشاء اتصال بقاعدة البيانات باستخدام Mongoose ويغلق بعد إتمام عملية الإدراج.

باستخدام هذه الطريقة، يمكنك تحسين أداء التعامل مع كميات كبيرة من البيانات في MongoDB باستخدام Mongoose.

زر الذهاب إلى الأعلى