UNPKG

archivemongo

Version:
49 lines (43 loc) 1.74 kB
const { MongoClient } = require('mongodb'), assert = require('assert'), { promisify } = require('util'), MongoConnect = promisify(MongoClient.connect); module.exports = { ArchieveData : function(mongoDetails, callback){ if(!mongoDetails.mongoDatabaseUrl || !mongoDetails.archiveCollectionName || !mongoDetails.mainCollectionName){ throw new Error("Please provide mongoDatabaseUrl, archiveCollectionName and mainCollectionName as an object like { mongoDatabaseUrl : mongoDatabaseUrl, archiveCollectionName : archiveCollectionName, mainCollectionName : mainCollectionName}") }else{ MongoConnect(mongoDetails.mongoDatabaseUrl, { useNewUrlParser: true }) .then(db => { const CreateCollection = promisify(db.createCollection); CreateCollection(mongoDetails.archiveCollectionName) .then(archive_collection => { CreateCollection(mongoDetails.mainCollectionName) }) .then(main_collection => { let cursor = main_collection.find({}); if(cursor.hasNext()){ const CursorNext = promisify(cursor.nextObject); CursorNext() .then(item => { const InsertInArchiveCollection = promisify(archive_collection.insert); InsertInArchiveCollection(item) .then(() => {console.log("DOC INSERTED IN ARCHIVE COLLECTION")}); }) }else{ console.log("ALL ARCHIVED"); callback(null, "ALL ARCHIVED"); } }) }) .catch(err=>{ throw new Error(err); }) } } } module.exports.ArchieveData(mongoDetails, function(err, done){ if(err){ console.log("Err is : ", err); }else{ console.log("Done is : ", done) } })