MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

Copia/clona un database in MongoDB

Nelle versioni precedenti di MongoDB, potresti usare copyDB comando o il suo metodo di supporto, db.copyDatabase() per copiare un database.

MongoDB da allora li ha deprecati. Inoltre, a partire dalla versione 4.2, MongoDB ha rimosso copydb comando, e quindi anche il db.copyDatabase() metodo, il che significa che non puoi usarli anche se lo desideri se stai utilizzando MongoDB 4.2 o versioni successive.

Fortunatamente, c'è un altro modo per copiare un database MongoDB.

Cerca gli strumenti del database MongoDB

In MongoDB, puoi clonare un database utilizzando MongoDB Database Tools. In particolare, puoi utilizzare mongodump e mongorestore .

I MongoDB Database Tools sono una suite di utilità da riga di comando per lavorare con MongoDB.

Se non sei sicuro di aver installato MongoDB Database Tools, prova a eseguire i seguenti comandi nel tuo terminale o nel prompt dei comandi per verificare:

mongodump --version
mongorestore --version

Questo controlla specificamente il mongodump e mongorestore versioni.

Se non li hai, puoi utilizzare le istruzioni di installazione sul sito Web di MongoDB per installare MongoDB Database Tools sul tuo sistema.

Esempio di clonazione di un database

Devi eseguire mongodump e mongorestore dalla riga di comando del sistema (ad es. una nuova finestra del terminale o del prompt dei comandi). Non eseguirlo da mongo guscio.

Ecco un esempio di codice che clona un database:

mongodump --archive --db=PetHotel | mongorestore --archive  --nsFrom='PetHotel.*' --nsTo='PetHouse.*'

In questo caso, eseguiamo il backup di PetHotel database, quindi ripristina tutte le sue raccolte in un database chiamato PetHouse . In altre parole, abbiamo clonato il PetHotel database come PetHouse .

Questo utilizza mongodump per creare un file di backup del database, quindi mongorestore per ripristinare quel database con un nome diverso. L'abbiamo fatto scaricando il database nel flusso di output standard e collegandolo a mongorestore .

Ecco cosa fa ogni parametro:

Parametro Descrizione
--archive Scrive l'output in un file di archivio specificato o, se il file di archivio non è specificato, scrive nell'output standard (stdout ). Nel nostro caso, il file di archivio non è specificato, quindi è stato scritto nell'output standard.
--db Specifica un database di cui eseguire il backup. In questo caso, eseguiamo il backup di PetHotel banca dati.
--nsFrom Specifica la raccolta nel file di dump. Il carattere jolly asterisco (* ) specifica tutte le raccolte.
--nsTo Specifica il nome della raccolta da utilizzare nel database ripristinato.

Puoi anche usare mongodump per eseguire il dump di tutti i database. Per farlo basta eseguire mongodump senza alcun argomento. Tuttavia, quando lo fai, non include il local e config database nel suo dump.