MongoDB mongorestore i istniejąca kolekcja z rekordami

82

Muszę zaimportować (przywrócić) kolekcję wygenerowaną za pomocą mongodumpdo istniejącej bazy danych i chcę, aby rekordy zostały scalone z istniejącą kolekcją.

Czy mongorestorescali rekordy w tej samej kolekcji, czy usunie istniejącą kolekcję przed przywróceniem rekordów?

Simone Carletti
źródło

Odpowiedzi:

134

mongorestoreusunie istniejącą kolekcję tylko wtedy, gdy użyjesz --dropargumentu.

Jeśli nie używasz --drop, wszystkie dokumenty zostaną wstawione do istniejącej kolekcji, chyba że _idistnieje już dokument z takimi samymi . Dokumenty z tym samym _idzostaną pominięte, nie zostaną scalone. Dlatego mongorestoredomyślnie nie usunie ani nie zmodyfikuje żadnych istniejących danych.

Niels van der Rest
źródło
czy mongodb jest faktycznie usuwany przy użyciu opcji --drop? W moim przypadku podczas przywracania widzę poprzednie rekordy, które zostały dodane po zrobieniu zrzutu. czy możesz rozwiązać mój problem tutaj stackoverflow.com/questions/22424347/ ...
codeofnode
2
Odpowiedź na powyższą odpowiedź w Mongorestore
Tomas Romero
5
@codeofnode z dokumentacji: --drop does not drop collections that are not in the backup.. Należy sprawdzić, czy kolekcja, która ma zostać usunięta, rzeczywiście znajduje się w kopii zapasowej.
csvan