MongoDB에는 한 데이터베이스에서 다른 데이터베이스로 컬렉션을 복사하는 명령이 존재하지 않습니다. 이를 달성하려면 아래 개념을 사용하십시오 -
db.yourCollectionName.find().forEach(function(yourVariableName){ db.getSiblingDB('yourDestinationDatabase')['yourCollectionName'].insert(yourVariableName);});
테스트 데이터베이스에 컬렉션을 만들고 이 컬렉션을 'sample'이라는 이름의 다른 데이터베이스에 복사해 보겠습니다.
위의 구문을 이해하기 위해 문서로 컬렉션을 생성해 보겠습니다. 문서로 컬렉션을 생성하는 쿼리는 다음과 같습니다 -
<테스트>
> db 테스트로 전환된 테스트 사용> db.copyThisCollectionToSampleDatabaseDemo.insertOne({"User_Id":101,"UserName":"Larry"});{ "acknowledge" :true, "insertedId" :ObjectId("5c77ad622386")422a60 }> db.copyThisCollectionToSampleDatabaseDemo.insertOne({"User_Id":102,"UserName":"Maxwell"});{ "승인됨":true, "insertedId":ObjectId("5c77ad6e2386c62d05142ectiona68.copybaseCollection. {"User_Id":103,"UserName":"Robert"});{ "승인됨":true, "insertedId":ObjectId("5c77ad7c2386c62d05142a69")}
find() 메서드를 사용하여 컬렉션의 모든 문서를 표시합니다. 쿼리는 다음과 같습니다 -
> db.copyThisCollectionToSampleDatabaseDemo.find().pretty();
다음은 출력입니다 -
{ "_id":ObjectId("5c77ad622386c62d05142a67"), "User_Id":101, "UserName":"래리"}{ "_id":ObjectId("5c77ad6e2386c62d05142a60") :"맥스웰"}{ "_id" :ObjectId("5c77ad7c2386c62d05142a69"), "User_Id" :103, "사용자 이름" :"로버트"}
샘플 데이터베이스에 "copyThisCollectionToSampleDatabaseDemo"라는 이름의 컬렉션이 있는지 확인하겠습니다.
쿼리는 다음과 같습니다 -
<샘플>
> 샘플 사용, db 샘플로 전환> 컬렉션 표시,
다음은 출력입니다 -
deleteDocumentsdeleteDocumentsDemodeleInformationemployeeinternalArraySizeDemosourceCollectionupdateInformationuserInformation 삭제
따라서 "copyThisCollectionToSampleDatabaseDemo"라는 이름의 컬렉션이 없습니다.
이제 테스트 데이터베이스에서 샘플 데이터베이스로 위의 컬렉션을 복사합니다. 쿼리는 다음과 같습니다 -
> 테스트 사용;db 테스트로 전환> db.copyThisCollectionToSampleDatabaseDemo.find().forEach(function(send){db.getSiblingDB('sample')['copyThisCollectionToSampleDatabaseDemo'].insert(send); });사전>이제 샘플 데이터베이스에 컬렉션이 성공적으로 복사되었는지 다시 한 번 확인해 보겠습니다.
쿼리는 다음과 같습니다 -
> 샘플 사용, db 샘플로 전환> 컬렉션 표시,다음은 출력입니다 -
copyThisCollectionToSampleDatabaseDemodeleDocumentsdeleteDocumentsDemodeleteInformationemployeeinternalArraySizeDemosourceCollectionupdateInformationuserInformation샘플 출력을 보면 "copyThisCollectionToSampleDatabaseDemo" 컬렉션이 샘플 데이터베이스에 있고 테스트 데이터베이스에도 있습니다.