2015-02-21 9 views
22

Niestety, nie udało mi się przywrócić pojedynczego zbioru do istniejącej bazy danych. Używam Ubuntu 14.04 z mongo w wersji 2.6.7 Istnieje plik dump/mydbname/contents.bson oparty na moim katalogu domowym.Przywracanie pojedynczej kolekcji w istniejącym mongodb

Jeśli biegnę

mongorestore --collection contents --db mydbname 

Następnie uzyskać:

connected to: 127.0.0.1 
don't know what to do with file [dump] 

Jeśli dodać w ścieżce

mongorestore --collection contents --db mydbname --dbpath dump/mydbname 

Potem dostać

If you are running a mongod on the same path you should connect to that instead of direct data file access 

Próbowałem różnych innych kombinacji, opcji itp. I po prostu nie mogę tego rozwiązać, więc przychodzę do społeczności po pomoc!

Odpowiedz

42

Jeśli chcesz przywrócić pojedynczą kolekcję, musisz podać plik zrzutu kolekcji. Plik zrzutu kolekcji znajduje się w folderze "dump/dbname /". Więc zakładając folder zrzutu jest w bieżącym katalogu roboczym, polecenie pójdzie coś takiego -

mongorestore --db mydbname --collection mycollection dump/mydbname/mycollection.bson 
+0

Tak, próbowałem tego jednego już. To daje mi "Jeśli prowadzisz mongoba na tej samej ścieżce, powinieneś połączyć się z tym zamiast bezpośredniego dostępu do pliku danych". Próbowałem również uruchomić to z uruchomioną i zatrzymaną usługą. – JonRed

+3

Nie, zauważ polecenie. Nie powinieneś używać "--dbpath". –

+1

Masz rację, a ja jestem idiotą. Tak było. Dziękuję Ci. Miej zaakceptowaną odpowiedź! – JonRed

0

przypadku przywracania wielu kolekcji, można użyć pętli:

for file in "$HOME/mongodump/dev/<your-db>/"* ; do 

    if [[ "$file" != "*metadata*" && "$file" != "system.*" && "$file" != "locks.*" ]]; then 

    file="$(basename "$file”)" 

    mongorestore \ 
     --db cdt_dev \ 
     --collection "${file%.*}" \ # filename w/o extension 
     --host "<your-host>" \ 
     --authenticationDatabase "<your-auth-db>" \ 
     -u "user" \ 
     -p "pwd" \ 
     "$HOME/mongodump/dev/<your-db>/$file" 

    fi; 

done 
Powiązane problemy