اذهب إلى المحتوى

السؤال

نشر

هل يوجد أمر معيّن أو طريقة لنسخ أو نقل المجموعة collection من قاعدة بيانات إلى أخرى؟ علماً بأن القاعدتين موجودتين على نفس الخادم.

لقد قرأت في التوثيق الرسمي ولم ألاحظ ماهي آلية تحقيق ذلك.

Recommended Posts

  • 0
نشر

يمكنك إجراء mongodump على المجموعة في قاعدة البيانات الأولى (المصدر) ثم استعادتها ضمن قاعدة البيانات الثانية (الهدف) من خلال mongorestore، بالشكل التالي:

mongodump -d sourceDatabase -c yourCollectionName

ولاستعادتها:

mongorestore -d destDb -c collectionName dump/collectionName.bson

حيث باتباع هذه الطريقة يمكنك الاستفادة من الضغط zip وفك الضغط scp في حال كانت المجموعة كبيرة الحجم:

zip db.zip db/* -r

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

  • 1
نشر

في الوقت الحالي لا يوجد أمر في mongodb لعمل ذلك ، ولكن تستطيع إستخدام هذا الكود لعمل ذلك

db.<collection_name>.find().forEach(function(d){ db.getSiblingDB('<new_database>')['<collection_name>'].insert(d); });

ملاحظة يجب أن تكون قاعدتي البيانات تشارك نفس mongod لكي تعمل هذه الطريقة

والى جانب المذكور سابقاً يمكنك إستخدام mongodump لتصدير مجموعة collection واستيرادها من في قاعدة البيانات الآخرى بإستخدام mongorestore

  • 1
نشر

في الواقع ، هناك أمر لنقل مجموعة من قاعدة بيانات إلى أخرى. لنسخ مجموعة ، يمكنك استنساخها على نفس قاعدة البيانات ، ثم نقل المجموعة المستنسخة إلى قاعدة البيانات الجديدة

لنسخ مجموعة نستعمل الشيفرة البرمجية التالية:

> use db1
switched to db db1

> db.source_collection.find().forEach(
      function(x){
          db.collection_copy.insert(x)
      }
  );

بعد ذلك ننقل المجموعة المستنسخة إلى قاعدة البيانات الجديدة:

> use admin
switched to db admin

> db.runCommand(
      {
          renameCollection: 'db1.source_collection',
          to              : 'db2.target_collection'
      }
  );

بمكنك إستعمال نفس الطريقة لنسخ ونقل المجموعات الأخرى

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...