다음 명령으로 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의 경우 :
- 내보내기 전에 cmd 프롬프트에서 Mongo DB에 연결하고 로컬 호스트에 연결할 수 있는지 확인하십시오.
- 이제 새로운 cmd 프롬프트를 열고 아래 명령을 실행하십시오.
mongodump –db 데이터베이스 이름 –out 저장할 경로
예 : mongodump –db mydb –out c : \ TEMP \ op.json- 자세한 내용은 https://www.youtube.com/watch?v=hOCp3Jv6yKo 를 방문 하십시오.
-
우분투의 경우 :
- Mongo DB가 설치된 터미널에 로그인하고 Mongo DB에 연결할 수 있는지 확인하십시오.
- 이제 새 터미널을 열고 아래 명령을 실행하십시오.
mongodump -d 데이터베이스 이름 -o 저장할 파일 이름
예 : mongodump -d mydb -o output.json- 자세한 내용은 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