Computer >> 컴퓨터 >  >> 프로그램 작성 >> MongoDB

MongoDB에서 한 데이터베이스에서 다른 데이터베이스로 컬렉션을 복사하는 방법은 무엇입니까?

<시간/>

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" 컬렉션이 샘플 데이터베이스에 있고 테스트 데이터베이스에도 있습니다.