복붙노트

[MONGODB] MongoDB의에서 컬렉션을 복제

MONGODB

MongoDB의에서 컬렉션을 복제

나는 MongoDB의 수집을 복제하고 다른 이름으로 같은 서버에 저장하고 싶습니다. demo1.categories, demo1.users 및 demo2.users : 그래서 예를 들어 지금 나는 다음 컬렉션을 가지고있다.

나는 "demo1.categories"동일는 "demo2.categories"를 갖고 싶어. (그냥 다른 이름이 있습니다.)

해결법

  1. ==============================

    1.그러나 다시 MongoDB를 문서는 구조에 온다

    그러나 다시 MongoDB를 문서는 구조에 온다

    컬렉션은 실제로 "demo1.categories"라는 가정 :

    db.demo1.categories.find().forEach( function(x){db.demo2.categories.insert(x)} );
    
  2. ==============================

    2.가장 간단하고 효과적인 방법은 당신이 사용할 수 있도록 사항 copyTo ()를 사용하는 것입니다 :

    가장 간단하고 효과적인 방법은 당신이 사용할 수 있도록 사항 copyTo ()를 사용하는 것입니다 :

    db.source.copyTo("target"); 
    

    "대상"존재하지 않는 경우 및, 작성됩니다

    - 업데이트 -

    사항 copyTo ()를 사용하여 내부적으로 평가 후면 때문에하는 CopyTo 문서에있어서, 상기 복사 동작은 mongod 인스턴스에 다른 모든 동작을 차단한다. 그래서는 프로덕션 환경에 사용해서는 안됩니다.

    - 업데이트 -

    사용하는 CopyTo ()가 () 버전 3.0 이후 사용되지 않으며, 평가 () 내부 및 평가를 사용하기 때문에 사용하는 CopyTo ()는 또한 버전 3.0 이후 사용되지 않습니다 그래서.

  3. ==============================

    3.이 컬렉션을 복제하는 가장 빠른 방법입니다 :

    이 컬렉션을 복제하는 가장 빠른 방법입니다 :

    mongoexport -d db_name -c src_collection | mongoimport -d db_name -c dst_collection --drop
    

    그것은 dst_collection에 DB_NAME에 src_collection을 복제해야합니다. 또는 당신은 bson 수준에서 두 단계에서 그것을 할 수 있습니다 :

    mongodump -d db_name -c src_collection
    mongorestore --drop -d db_name -c dst_collection ./dump/db_name/src_collection.bson
    
  4. ==============================

    4.가장 빠른 옵션은

    가장 빠른 옵션은

    db.myoriginal.aggregate([ { $out: "mycopy" } ])
    
  5. ==============================

    5.이미이에 대한 명령이 있습니다.

    이미이에 대한 명령이 있습니다.

    한 서버에서 다른 서버로 하나의 콜렉션을 복사합니다. http://www.mongodb.org/display/DOCS/cloneCollection+Command

  6. ==============================

    6.당신은 다음 속도에 대해 우려하고 있다면 나는 $ 프로젝트와 총을 사용하여 해당을 발견하고 $ 밖으로 빨리 100 번으로하지 않도록이 비록 제한이 있습니다,하지만 당신은 당신이 원하는 거라고 필드의 집합을 생성해야하는 경우 사본 예를 들면 :

    당신은 다음 속도에 대해 우려하고 있다면 나는 $ 프로젝트와 총을 사용하여 해당을 발견하고 $ 밖으로 빨리 100 번으로하지 않도록이 비록 제한이 있습니다,하지만 당신은 당신이 원하는 거라고 필드의 집합을 생성해야하는 경우 사본 예를 들면 :

    // Set of fields in the categories collection
    var setOfFields = {field1:1, field2:1.......}
    db.demo1.categories.aggregate([{ "$project": setOfFields},{ $out: "demo2.categories"}]);
    

    이 사본 (사업) demo2.categories에 demo1.categories 모든 문서 필드의 선택 세트

  7. ==============================

    7.DB_HOST가 DB_HOST가 복제 할 것을 수집과 DB를 가지고있는 기계가 어디 몽고 콘솔에서, 당신은뿐만 아니라 다음을 수행 할 수 있습니다.

    DB_HOST가 DB_HOST가 복제 할 것을 수집과 DB를 가지고있는 기계가 어디 몽고 콘솔에서, 당신은뿐만 아니라 다음을 수행 할 수 있습니다.

    사용하다 db.cloneCollection ()

  8. from https://stackoverflow.com/questions/8933307/clone-a-collection-in-mongodb by cc-by-sa and MIT license