[mongodb] MongoDB에서 모든 컬렉션을 내보내는 방법은 무엇입니까?

다음 명령으로 MongoDB의 모든 컬렉션을 내보내고 싶습니다.

mongoexport -d dbname -o Mongo.json

결과 :
컬렉션이 지정되지 않았습니다!

설명서에 컬렉션을 지정하지 않으면 모든 컬렉션이 내보내집니다.
그러나 왜 이것이 작동하지 않습니까?

http://docs.mongodb.org/manual/reference/mongoexport/#cmdoption-mongoexport–collection

내 MongoDB 버전은 2.0.6입니다.



답변

게으른 사람들의 경우을 사용 mongodump하면 더 빠릅니다.

mongodump -d <database_name> -o <directory_backup>

그리고 “복원 / 가져 오기”(directory_backup / dump /에서) :

mongorestore -d <database_name> <directory_backup>

이렇게하면 모든 컬렉션을 개별적으로 처리 할 필요가 없습니다. 데이터베이스를 지정하십시오.

빅 데이터 스토리지에는mongodump / mongorestore를 사용하지 않는 것이 좋습니다 . 속도가 매우 느리고 10 / 20GB의 데이터를 지나면 복원하는 데 몇 시간이 걸릴 수 있습니다.


답변

나는 그것을 위해 bash 스크립트를 썼다. 2 개의 매개 변수 (데이터베이스 이름, 파일을 저장하는 dir)로 실행하십시오.

#!/bin/bash

if [ ! $1 ]; then
        echo " Example of use: $0 database_name [dir_to_store]"
        exit 1
fi
db=$1
out_dir=$2
if [ ! $out_dir ]; then
        out_dir="./"
else
        mkdir -p $out_dir
fi

tmp_file="fadlfhsdofheinwvw.js"
echo "print('_ ' + db.getCollectionNames())" > $tmp_file
cols=`mongo $db $tmp_file | grep '_' | awk '{print $2}' | tr ',' ' '`
for c in $cols
do
    mongoexport -d $db -c $c -o "$out_dir/exp_${db}_${c}.json"
done
rm $tmp_file


답변

아래 단계에 따라 서버에서 mongodump를 생성하고 사용자 이름과 비밀번호가있는 다른 서버 / 로컬 시스템을 가져 오십시오.

1. mongodump -d dbname -o dumpname -u username -p password
2. scp -r user@remote:~/location/of/dumpname ./
3. mongorestore -d dbname dumpname/dbname/ -u username -p password


답변

mongodump를 사용하여 모든 컬렉션을 내보내려면 다음 명령을 사용하십시오.

mongodump -d database_name -o directory_to_store_dumps

복원하려면이 명령을 사용하십시오

mongorestore -d database_name directory_backup_where_mongodb_tobe_restored


답변

Mongo DB를 설치 한 위치를 알려주십시오. (우분투 또는 Windows에서)

  • Windows의 경우 :

    1. 내보내기 전에 cmd 프롬프트에서 Mongo DB에 연결하고 로컬 호스트에 연결할 수 있는지 확인하십시오.
    2. 이제 새로운 cmd 프롬프트를 열고 아래 명령을 실행하십시오.

    mongodump –db 데이터베이스 이름 –out 저장할 경로
    예 : mongodump –db mydb –out c : \ TEMP \ op.json

    1. 자세한 내용은 https://www.youtube.com/watch?v=hOCp3Jv6yKo 를 방문 하십시오.
  • 우분투의 경우 :

    1. Mongo DB가 설치된 터미널에 로그인하고 Mongo DB에 연결할 수 있는지 확인하십시오.
    2. 이제 새 터미널을 열고 아래 명령을 실행하십시오.

    mongodump -d 데이터베이스 이름 -o 저장할 파일 이름
    예 : mongodump -d mydb -o output.json

    1. 자세한 내용은 https://www.youtube.com/watch?v=5Fwd2ZB86gg 를 방문 하십시오.

답변

이전 답변에서 잘 설명했습니다. 원격 암호로 보호 된 데이터베이스를 처리하는 경우 도움이되도록 답변을 추가하고 있습니다.

mongodump --host xx.xxx.xx.xx --port 27017 --db your_db_name --username your_user_name --password your_password --out /target/folder/path


답변

mongolab.com과 같은 원격 mongoDB 서버를 연결하려는 경우 연결 자격 증명을 전달해야합니다 (예 :

mongoexport -h id.mongolab.com:60599 -u username -p password -d mydb -c mycollection -o mybackup.json