One place for hosting & domains

      MongoDB

      What is MongoDB?


      MongoDB, also known as Mongo, is an open-source document database used in many modern web applications. It is classified as a NoSQL database because it does not rely on a traditional table-based relational database structure.

      Instead, Mongo uses JSON-like documents with dynamic schemas. This means that, unlike relational databases, MongoDB does not require a predefined schema before you add data to a database. You can alter the schema at any time and as often as is necessary without having to set up a new database with an updated schema.

      For more educational resources related to MongoDB, please visit:

      A complete list of our educational resources on MongoDB can be found on our MongoDB tag page.



      Source link

      How To Import and Export a MongoDB Database on Ubuntu 20.04


      The author selected the COVID-19 Relief Fund to receive a donation as part of the Write for DOnations program.

      Introduction

      MongoDB is one of the most popular NoSQL database engines. It is famous for being scalable, powerful, reliable and easy to use. In this article we’ll show you how to import and export your MongoDB databases.

      We should make clear that by import and export we mean those operations that deal with data in a human-readable format, compatible with other software products. By contrast, the backup and restore operations create or use MongoDB specific binary data, which preserve the consistency and integrity of your data and also its specific MongoDB attributes. Thus, for migration it’s usually preferable to use backup and restore, as long as the source and target systems are compatible.

      Backup, restore, and migration tasks are beyond the scope of this article. For more information refer to How To Back Up, Restore, and Migrate a MongoDB Database on Ubuntu 20.04.

      Prerequisites

      To complete this tutorial you will need the following:

      Step One — Importing Information Into MongoDB

      To learn how importing information into MongoDB works let’s use a popular sample MongoDB database about restaurants. It’s in .json format and can be downloaded using wget like this:

      • wget https://raw.githubusercontent.com/mongodb/docs-assets/primer-dataset/primer-dataset.json

      Once the download completes you should have a file called primer-dataset.json (12 MB size) in the current directory. Let’s import the data from this file into a new database called newdb and into a collection called restaurants.

      Use the mongoimport command like this:

      • sudo mongoimport --db newdb --collection restaurants --file primer-dataset.json

      The result will look like this:

      Output

      2020-11-11T19:37:55.607+0000 connected to: mongodb://localhost/ 2020-11-11T19:37:57.841+0000 25359 document(s) imported successfully. 0 document(s) failed to import

      As the above command shows, 25359 documents have been imported. Because we didn’t have a database called newdb, MongoDB created it automatically.

      Let’s verify the import.

      Connect to the newly created newdb database:

      You are now connected to the newdb database instance. Notice that your prompt has changed, indicating that you are connected to the database.

      Count the documents in the restaurants collection with the command:

      The result will show 25359, which is the number of imported documents. For an even better check you can select the first document from the restaurants collection like this:

      The result will look like this:

      [secondary label Output]
      {
          "_id" : ObjectId("5fac3d937f12c471b3f26733"),
          "address" : {
              "building" : "1007",
              "coord" : [
                  -73.856077,
                  40.848447
              ],
              "street" : "Morris Park Ave",
              "zipcode" : "10462"
          },
          "borough" : "Bronx",
          "cuisine" : "Bakery",
          "grades" : [
              {
                  "date" : ISODate("2014-03-03T00:00:00Z"),
                  "grade" : "A",
                  "score" : 2
              },
      ...
          ],
          "name" : "Morris Park Bake Shop",
          "restaurant_id" : "30075445"
      }
      

      Such a detailed check could reveal problems with the documents such as their content, encoding, etc. The json format uses UTF-8 encoding and your exports and imports should be in that encoding. Have this in mind if you edit manually the json files. Otherwise, MongoDB will automatically handle it for you.

      To exit the MongoDB prompt, type exit at the prompt:

      You will be returned to the normal command line prompt as your non-root user.

      Step Two — Exporting Information From MongoDB

      As we have previously mentioned, by exporting MongoDB information you can acquire a human readable text file with your data. By default, information is exported in json format but you can also export to csv (comma separated value).

      To export information from MongoDB, use the command mongoexport. It allows you to export a very fine-grained export so that you can specify a database, a collection, a field, and even use a query for the export.

      A simple mongoexport example would be to export the restaurants collection from the newdb database which we have previously imported. It can be done like this:

      • sudo mongoexport --db newdb -c restaurants --out newdbexport.json

      In the above command, we use --db to specify the database, -c for the collection and --out for the file in which the data will be saved.

      The output of a successful mongoexport should look like this:

      Output

      2020-11-11T19:39:57.595+0000 connected to: mongodb://localhost/ 2020-11-11T19:39:58.619+0000 [###############.........] newdb.restaurants 16000/25359 (63.1%) 2020-11-11T19:39:58.871+0000 [########################] newdb.restaurants 25359/25359 (100.0%) 2020-11-11T19:39:58.871+0000 exported 25359 records

      The above output shows that 25359 documents have been imported — the same number as of the imported ones.

      In some cases you might need to export only a part of your collection. Considering the structure and content of the restaurants json file, let’s export all the restaurants which satisfy the criteria to be situated in the Bronx borough and to have Chinese cuisine. If we want to get this information directly while connected to MongoDB, connect to the database again:

      Then, use this query:

      • db.restaurants.find( { "borough": "Bronx", "cuisine": "Chinese" } )

      The results are displayed to the terminal:

      Output

      • 2020-12-03T01:35:25.366+0000 connected to: mongodb://localhost/
      • 2020-12-03T01:35:25.410+0000 exported 323 records

      To exit the MongoDB prompt, type exit:

      If you want to export the data from a sudo command line instead of while connected to the database, make the previous query part of the mongoexport command by specifying it for the -q argument like this:

      • sudo mongoexport --db newdb -c restaurants -q "{"borough": "Bronx", "cuisine": "Chinese"}" --out Bronx_Chinese_retaurants.json

      Note that we are escaping the double quotes with backslash () in the query. Similarly, you have to escape any other special characters in the query.

      If the export has been successful, the result should look like this:

      Output

      2020-11-11T19:49:21.727+0000 connected to: mongodb://localhost/ 2020-11-11T19:49:21.765+0000 exported 323 records

      The above shows that 323 records have been exported, and you can find them in the Bronx_Chinese_retaurants.json file that we specified.

      Use cat and less to scan the data:

      • cat Bronx_Chinese_retaurants.json | less

      Use SPACE to page through the data:

      Output

      • date":{"$date":"2015-01-14T00:00:00Z"},"grade":"Z","score":36}],"na{"_id":{"$oid":"5fc8402d141f5e54f9054f8d"},"address":{"building":"1236","coord":[-73.8893654,40.81376179999999],"street":"238 Spofford Ave","zipcode":"10474"},"borough":"Bronx","cuisine":"Chinese","grades":[{"date":{"$date":"2013-12-30T00:00:00Z"},"grade":"A","score":8},{"date":{"$date":"2013-01-08T00:00:00Z"},"grade":"A","score":10},{"date":{"$date":"2012-06-12T00:00:00Z"},"grade":"B","score":15}],
      • . . .

      Press q to exit. You can now import and export a MongoDB database.

      Conclusion

      This article has introduced you to the essentials of importing and exporting information to and from a MongoDB database. You can continue further reading on How To Back Up, Restore, and Migrate a MongoDB Database on Ubuntu 20.04.

      You can also consider using replication. Replication allows you to continue running your MongoDB service uninterrupted from a slave MongoDB server while you are restoring the master one from a failure. Part of the replication is the operations log (oplog), which records all the operations that modify your data. You can use this log, just as you would use the binary log in MySQL, to restore your data after the last backup has taken place. Recall that backups usually take place during the night, and if you decide to restore a backup in the evening you will be missing all the updates since the last backup.



      Source link

      Cara Menginstal MongoDB pada Ubuntu 20.04


      Versi sebelumnya dari tutorial ini ditulis oleh Melissa Anderson.

      Pengantar

      MongoDB, juga dikenal sebagai Mongo, adalah basis data dokumen sumber terbuka yang digunakan dalam banyak aplikasi web modern. MongoDB digolongkan sebagai basis data NoSQL karena tidak bergantung pada struktur basis data relasional berbasis tabel tradisional.

      Alih-alih, MongoDB menggunakan dokumen seperti JSON dengan skema dinamis, yang berarti bahwa, tidak seperti basis data relasional, MongoDB tidak membutuhkan skema yang sudah ditentukan sebelum Anda menambahkan data ke basis data. Anda dapat mengubah skema kapan saja dan sesering apa pun jika diperlukan tanpa harus menyiapkan basis data baru dengan skema yang diperbarui.

      Dalam tutorial ini, Anda akan menginstal MongoDB pada server Ubuntu 20.04, mengujinya, dan mempelajari cara mengelolanya sebagai layanan systemd.

      Prasyarat

      Untuk mengikuti tutorial ini, Anda akan membutuhkan:

      Langkah 1 — Menginstal MongoDB

      Repositori paket resmi Ubuntu menyertakan versi stabil dari MongoDB. Meskipun begitu, saat penulisan ini dilakukan, versi dari MongoDB yang tersedia dari repositori Ubuntu asali adalah 3.6, sementara rilis stabil terbaru adalah 4.4.

      Untuk memperoleh versi terbaru dari perangkat lunak ini, Anda harus menyertakan repositori paket khusus MongoDB ke sumber APT Anda. Lalu, Anda akan dapat menginstal mongodb-org, meta-paket yang selalu selalu mengarahkan ke versi terbaru MongoDB.

      Pertama-tama, impor kunci GPG publik untuk versi stabil terbaru dari MongoDB dengan menjalankan perintah berikut. Jika Anda berniat menggunakan versi dari MongoDB selain 4.4, pastikan untuk mengubah 4,4 dalam bagian URL dari perintah ini untuk menyelaraskan dengan versi Anda ingin instal:

      • curl -fsSL https://www.mongodb.org/static/pgp/server-4.4.asc | sudo apt-key add -

      cURL adalah alat baris perintah yang tersedia di banyak sistem operasi yang digunakan untuk mentransfer data. Alat ini membaca data apa pun yang disimpan di URL yang dikirimkan kepadanya dan mencetak kontennya ke keluaran sistem. Dalam contoh berikut ini, cURL mencetak konten dari berkas kunci GPG lalu memasukannya ke dalam perintah sudo apt-key add - berikut, sehingga menambahkan kunci GPG ke daftar kunci tepercaya Anda.

      Juga, perhatikan bahwa perintah curl ini menggunakan opsi -fsSL, yang secara bersamaan, pada dasarnya memberi tahu cURL untuk menjadi hening. Ini berarti bahwa jika karena alasan tertentu cURL tidak dapat menghubungi server GPG atau server GPG mati, cURL tidak akan secara tidak sengaja menambahkan kode kesalahan yang dihasilkan ke daftar kunci tepercaya Anda.

      Perintah ini akan memberikan respons OK jika kunci telah berhasil ditambahkan:

      Output

      OK

      Jika ingin memastikan kunci telah ditambahkan dengan benar, Anda dapat melakukannya dengan mengikuti perintah berikut:

      Ini akan menghasilkan kunci MongoDB di suatu tempat dalam keluaran:

      Output

      /etc/apt/trusted.gpg -------------------- pub rsa4096 2019-05-28 [SC] [expires: 2024-05-26] 2069 1EEC 3521 6C63 CAF6 6CE1 6564 08E3 90CF B1F5 uid [ unknown] MongoDB 4.4 Release Signing Key <packaging@mongodb.com> . . .

      Di titik ini, instalasi APT Anda masih belum mengetahui lokasi paket mongodb-org tempat Anda perlu menginstal versi terbaru dari MongoDB.

      Ada dua lokasi di server Anda yang menjadi tempat APT mencari sumber paket daring yang akan diunduh dan diinstal: berkas sources.list dan direktori sources.list.d. sources.list adalah berkas yang membuat daftar sumber aktif dari data APT, dengan satu sumber per baris dan sumber yang lebih diutamakan dicantumkan terlebih dahulu. Direktori sources.list.d memungkinkan Anda untuk menambah entri sources.list sebagai berkas terpisah.

      Jalankan perintah berikut, yang menciptakan berkas di dalam direktori sources.list.d bernama mongodb-org-4.4.list. Konten satu-satunya dalam berkas ini adalah baris tunggal berisi deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/4.4 multiverse:

      • echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/4.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.4.list

      Baris tunggal ini memberi tahu semua hal yang perlu diketahui APT tentang sumber itu dan tempat menemukannya:

      • deb: Ini berarti bahwa entri sumber mereferensikan suatu arsitektur Debian reguler. Dalam kasus lain, bagian dari baris ini mungkin berisi deb-src, yang berarti entri sumber mewakili kode sumber distribusi Debian.
      • [arch=amd64,arm64]: Ini menentukan arsitektur data APT yang harus diunduh. Dalam hal ini, arsitekturnya ditentukan sebagai amd64 dan arm64.
      • https://repo.mongodb.org/apt/ubuntu: Ini adalah suatu URI yang menunjukkan lokasi untuk menemukan data APT. Dalam hal ini, URI mengarah ke alamat HTTPS yang merupakan lokasi repositori MongoDB resmi.
      • focal/mongodb-org/4.4: Repositori Ubuntu dapat memuat beberapa rilis berbeda. Ini menentukan bahwa Anda hanya menginginkan versi 4.4 dari paket mongodb-org yang tersedia untuk rilis focal dari Ubuntu (“Focal Fossa” menjadi nama kode Ubuntu 20.04).
      • multiverse: Bagian ini mengarahkan APT ke salah satu dari empat repositori Ubuntu utama. Dalam hal ini, mengarah ke repositori multiverse.

      Setelah menjalankan perintah ini, perbarui indeks paket lokal server Anda sehingga APT tahu tempat menemukan paket mongodb-org:

      Setelah itu, Anda dapat menginstal MongoDB:

      • sudo apt install mongodb-org

      Ketika diminta, tekan Y lalu ENTER untuk mengonfirmasi bahwa Anda ingin menginstal paket itu.

      Ketika perintah selesai, MongoDB akan diinstal di sistem Anda. Namun, MongoDB belum siap digunakan. Selanjutnya, Anda akan memulai dan memastikan MongoDB berjalan dengan benar.

      Langkah 2 — Memulai Layanan MongoDB dan Menguji Basis Data

      Proses instalasi yang dijelaskan dalam langkah sebelumnya secara otomatis mengonfigurasi MongoDB untuk berjalan sebagai suatu daemon yang dikendalikan oleh systemd, yang berarti Anda dapat mengelola MongoDB menggunakan berbagai perintah systemctl. Namun, prosedur instalasi ini tidak secara otomatis memulai layanan.

      Jalankan perintah systemctl berikut untuk memulai layanan MongoDB:

      • sudo systemctl start mongod.service

      Kemudian, periksa status layanan. Perhatikan bahwa perintah ini tidak menyertakan .service dalam definisi berkas layanan. systemctl akan menambah akhiran ini ke argumen apa pun yang Anda masukkan secara otomatis jika akhiran ini tidak ada, sehingga Anda tidak perlu menambahkannya:

      • sudo systemctl status mongod

      Perintah ini akan merespons dengan keluaran seperti berikut ini, yang mengindikasikan bahwa layanan sudah aktif dan berjalan:

      Output

      ● mongod.service - MongoDB Database Server Loaded: loaded (/lib/systemd/system/mongod.service; disabled; vendor preset: enabled) Active: active (running) since Tue 2020-06-09 12:57:06 UTC; 2s ago Docs: https://docs.mongodb.org/manual Main PID: 37128 (mongod) Memory: 64.8M CGroup: /system.slice/mongod.service └─37128 /usr/bin/mongod --config /etc/mongod.conf

      Setelah mengonfirmasi bahwa layanan berjalan sesuai harapan, aktifkan layanan MongoDB untuk memulai saat boot:

      • sudo systemctl enable mongod

      Anda dapat memverifikasi lebih lanjut bahwa basis data beroperasi dengan menghubungkannya ke server basis data dan mengeksekusi perintah diagnostik. Perintah berikut akan menghubungkannya ke basis data dan memberikan keluaran versi server saat ini, alamat server, dan portanya. Ini juga akan memberikan hasil dari perintah connectionStatus internal MongoDB:

      • mongo --eval 'db.runCommand({ connectionStatus: 1 })'

      connectionStatus akan memeriksa dan memberikan status koneksi basis data. Nilai 1 untuk bidang ok dalam respons mengindikasikan bahwa server berjalan sesuai harapan:

      Output

      MongoDB shell version v4.4.0 connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodb Implicit session: session { "id" : UUID("1dc7d67a-0af5-4394-b9c4-8a6db3ff7e64") } MongoDB server version: 4.4.0 { "authInfo" : { "authenticatedUsers" : [ ], "authenticatedUserRoles" : [ ] }, "ok" : 1 }

      Juga, perhatikan bahwa basis data berjalan di porta 27017 di 127.0.0.1, alamat loopback lokal yang mewakili localhost. Ini adalah nomor porta asali dari MongoDB.

      Selanjutnya, kita akan membahas cara mengelola instans server MongoDB dengan systemd.

      Langkah 3 — Mengelola Layanan MongoDB

      Seperti disebutkan sebelumnya, proses instalasi yang diuraikan dalam Langkah 1 mengonfigurasi MongoDB untuk berjalan sebagai layanan systemd. Ini berarti Anda dapat mengelolanya menggunakan perintah systemctl standar sebagaimana Anda melakukannya dengan layanan sistem Ubuntu lainnya.

      Seperti disebutkan sebelumnya, perintah systemctl status memeriksa status layanan MongoDB:

      • sudo systemctl status mongod

      Anda dapat menghentikan layanan kapan pun dengan mengetik:

      • sudo systemctl stop mongod

      Untuk memulai layanan saat berhenti, jalankan:

      • sudo systemctl start mongod

      Anda juga dapat memulai ulang server saat sudah berjalan:

      • sudo systemctl restart mongod

      Dalam Langkah 2, Anda telah mengaktifkan MongoDB untuk memulai secara otomatis dengan server. Jika Anda ingin menonaktifkan pemulaian otomatis ini, ketikkan:

      • sudo systemctl disable mongod

      Kemudian, untuk mengaktifkan kembali agar memulai saat boot, jalankan perintah enable kembali:

      • sudo systemctl enable mongod

      Untuk informasi lebih lanjut tentang cara mengelola layanan systemd, lihat Hal Esensial Systemd: Bekerja dengan Layanan, Unit, dan Jurnal.

      Kesimpulan

      Dalam tutorial ini, Anda telah menambahkan repositori MongoDB resmi ke dalam instans APT, dan menginstal versi terbaru dari MongoDB. Kemudian, Anda telah menguji fungsionalitas Mongo dan mempraktikkan beberapa perintah systemctl.

      Sebagai langkah selanjutnya, kami sangat menyarankan agar Anda memperkuat keamanan instalasi MongoDB dengan mengikuti panduan kami tentang Cara Mengamankan MongoDB pada Ubuntu 20.04. Setelah diamankan, Anda dapat mengonfigurasi MongoDB untuk menerima koneksi jauh.

      Anda dapat menemukan tutorial lebih lanjut tentang cara mengonfigurasi dan menggunakan MongoDB di artikel komunitas DigitalOcean ini. Kami juga menyarankan Anda untuk melihat dokumentasi MongoDB yang resmi, karena itu merupakan sumber daya yang tepat mengenai kemungkinan yang diberikan MongoDB.



      Source link