ใน MongoDB ไม่มีคำสั่งให้คัดลอกคอลเลกชันจากฐานข้อมูลหนึ่งไปยังอีกฐานข้อมูลหนึ่ง เพื่อให้บรรลุมัน ใช้แนวคิดด้านล่าง −
db.yourCollectionName.find().forEach(function(yourVariableName){
db.getSiblingDB('yourDestinationDatabase')['yourCollectionName'].insert(yourVariableName);
}); ให้เราสร้างคอลเลกชันในฐานข้อมูลทดสอบและคัดลอกคอลเลกชันนี้ไปยังฐานข้อมูลอื่นในชื่อ "ตัวอย่าง"
เพื่อให้เข้าใจไวยากรณ์ข้างต้น ให้เราสร้างคอลเลกชันด้วยเอกสาร แบบสอบถามเพื่อสร้างคอลเลกชันที่มีเอกสารมีดังนี้ -
> use test
switched to db test
> db.copyThisCollectionToSampleDatabaseDemo.insertOne({"User_Id":101,"UserName":"Larr
y"});
{
"acknowledged" : true,
"insertedId" : ObjectId("5c77ad622386c62d05142a67")
}
> db.copyThisCollectionToSampleDatabaseDemo.insertOne({"User_Id":102,"UserName":"Maxwell"});
{
"acknowledged" : true,
"insertedId" : ObjectId("5c77ad6e2386c62d05142a68")
}
> db.copyThisCollectionToSampleDatabaseDemo.insertOne({"User_Id":103,"UserName":"Robert"});
{
"acknowledged" : true,
"insertedId" : ObjectId("5c77ad7c2386c62d05142a69")
} แสดงเอกสารทั้งหมดจากคอลเล็กชันโดยใช้เมธอด find() แบบสอบถามมีดังนี้ −
> db.copyThisCollectionToSampleDatabaseDemo.find().pretty();
ต่อไปนี้เป็นผลลัพธ์ -
{
"_id" : ObjectId("5c77ad622386c62d05142a67"),
"User_Id" : 101,
"UserName" : "Larry"
}
{
"_id" : ObjectId("5c77ad6e2386c62d05142a68"),
"User_Id" : 102,
"UserName" : "Maxwell"
}
{
"_id" : ObjectId("5c77ad7c2386c62d05142a69"),
"User_Id" : 103,
"UserName" : "Robert"
} ให้เราตรวจสอบฐานข้อมูลตัวอย่างว่ามีคอลเลกชันชื่อ “copyThisCollectionToSampleDatabaseDemo” หรือไม่
แบบสอบถามมีดังนี้ −
<ตัวอย่าง>
> use sample; switched to db sample > show collections;
ต่อไปนี้เป็นผลลัพธ์ -
deleteDocuments deleteDocumentsDemo deleteInformation employee internalArraySizeDemo sourceCollection updateInformation userInformation
ดังนั้นจึงไม่มีคอลเล็กชันชื่อ “copyThisCollectionToSampleDatabaseDemo”
ตอนนี้เราจะคัดลอกคอลเลกชันด้านบนจากฐานข้อมูลทดสอบไปยังฐานข้อมูลตัวอย่าง แบบสอบถามมีดังนี้ −
> use test;
switched to db test
> db.copyThisCollectionToSampleDatabaseDemo.find().forEach(function(send){
db.getSiblingDB('sample')['copyThisCollectionToSampleDatabaseDemo'].insert(send); }); ตอนนี้ให้เราตรวจสอบอีกครั้งว่าคอลเลกชันถูกคัดลอกหรือไม่สำเร็จในฐานข้อมูลตัวอย่าง
แบบสอบถามมีดังนี้ −
> use sample; switched to db sample > show collections;
ต่อไปนี้เป็นผลลัพธ์ -
copyThisCollectionToSampleDatabaseDemo deleteDocuments deleteDocumentsDemo deleteInformation employee internalArraySizeDemo sourceCollection updateInformation userInformation
ดูผลลัพธ์ตัวอย่าง คอลเล็กชัน “copyThisCollectionToSampleDatabaseDemo” มีอยู่ในฐานข้อมูลตัวอย่างในขณะที่มีอยู่ในฐานข้อมูลทดสอบด้วย