Di MongoDB versi sebelumnya, Anda dapat menggunakan copyDB
perintah atau metode pembantunya, db.copyDatabase()
untuk menyalin database.
MongoDB telah menghentikan ini. Juga, mulai dari versi 4.2, MongoDB telah menghapus copydb
perintah, dan karena itu juga db.copyDatabase()
metode, yang berarti Anda tidak dapat menggunakannya meskipun Anda menginginkannya jika Anda menggunakan MongoDB 4.2 atau lebih baru.
Untungnya, ada cara lain untuk menyalin database MongoDB.
Periksa Alat Basis Data MongoDB
Di MongoDB, Anda dapat mengkloning database menggunakan MongoDB Database Tools. Secara khusus, Anda dapat menggunakan mongodump
dan mongorestore
.
Alat Database MongoDB adalah rangkaian utilitas baris perintah untuk bekerja dengan MongoDB.
Jika Anda tidak yakin apakah Anda telah menginstal MongoDB Database Tools, coba jalankan perintah berikut di Terminal atau Command Prompt untuk memeriksa:
mongodump --version
mongorestore --version
Itu secara khusus memeriksa mongodump
dan mongorestore
versi.
Jika Anda tidak memilikinya, Anda dapat menggunakan petunjuk penginstalan di situs web MongoDB untuk menginstal Alat Database MongoDB ke sistem Anda.
Contoh Mengkloning Basis Data
Anda perlu menjalankan mongodump
dan mongorestore
dari baris perintah sistem Anda (mis. Terminal baru atau jendela Prompt Perintah). Jangan jalankan dari mongo
kerang.
Berikut ini contoh kode yang mengkloning database:
mongodump --archive --db=PetHotel | mongorestore --archive --nsFrom='PetHotel.*' --nsTo='PetHouse.*'
Dalam hal ini, kami membuat cadangan PetHotel
database, lalu restore semua koleksinya ke database bernama PetHouse
. Dengan kata lain, kami mengkloning PetHotel
database sebagai PetHouse
.
Ini menggunakan mongodump
untuk membuat file backup database, maka mongorestore
untuk memulihkan database tersebut dengan nama yang berbeda. Kami melakukan ini dengan membuang database ke aliran keluaran standar dan menyalurkan ke mongorestore
.
Inilah yang dilakukan setiap parameter:
Parameter | Deskripsi |
---|---|
--archive | Menulis output ke file arsip tertentu atau, jika file arsip tidak ditentukan, menulis ke output standar (stdout ). Dalam kasus kami, file arsip tidak ditentukan, sehingga menulis ke output standar. |
--db | Menentukan database untuk dicadangkan. Dalam hal ini, kami membuat cadangan PetHotel basis data. |
--nsFrom | Menentukan koleksi dalam file dump. Karakter pengganti asterisk (* ) menentukan semua koleksi. |
--nsTo | Menentukan nama koleksi yang harus digunakan dalam database yang dipulihkan. |
Anda juga dapat menggunakan mongodump
untuk membuang semua database. Untuk melakukannya jalankan mongodump
tanpa argumen apapun. Namun, ketika Anda melakukannya, itu tidak termasuk local
dan config
database di tempat pembuangannya.