/** * Script untuk membaca seluruh document pada database MongoDB, kemudian di simpan kedalam sebuah file hasilnya. */ const mongoose = require('mongoose') const fs = require('fs'); const databaseUrl = 'mongodb://127.0.0.1:27017/databaseName' let seconds = 10; mongoose.connect(databaseUrl) /** * * @param {string} name * @param {function} cb * Fungsi untuk membaca document dalam collection */ function find(name, cb) { mongoose.connection.db.collection(name, async function (err, collection) { collection.find().toArray(cb); }); } mongoose.connection.on('connected', () => { const fileaname = `alldocs-${new Date().getTime()}.js` // filename-timestamps.format // Baca semua collection yang ada mongoose.connection.db.listCollections().toArray(async function (err, names) { const data = [] for (const col of names) { // Looping mencari document berdasarkan nama collection find(col.name, function (err, docs) { data.push({ collectionName: col.name, docs: docs }); }); } // Jeda waktu sebelum disimpan kedalam file console.log("Tunggu sampai 1") setTimeout(() => { // Ubah ke format string json hasil pencarian documents fs.writeFile(fileaname, JSON.stringify(data), err => { if (err) { console.error(err); } console.log('\nsukses') process.exit() }); }, 10020) // jeda 10 detik dimulai dari script dieksekusi setInterval(() => { process.stdout.write(`${seconds} `); seconds--; }, 1000) }) }) /** * Reference: * - https://www.mongodb.com/docs/manual/reference/command/listCollections/ * - https://mongoosejs.com/docs/guide.html * * Tools untuk parser json format: https://jsonformatter.org/json-parser */