conn = new Mongo('10.1.2.146:27017'); company = conn.getDB("iot_partner_company"); workflow = conn.getDB("iot_partner_workflow"); companies = company.companies.find() worksheets = workflow.worksheets.find().sort( { "createdDate": 1 } ) let movedFileList = [] while ( worksheets.hasNext() ) { worksheet = worksheets.next() // print(worksheet.supplierRegistration.taxId) let fileList = [] // worksheet.files for(file of worksheet.files) { if(file.fileValue === 'companyFile') { if(worksheet.businessAgreement && worksheet.businessAgreement.companyFiles && worksheet.businessAgreement.companyFiles.companies && !worksheet.businessAgreement.companyFiles.companies.includes(file.fileId)) { worksheet.businessAgreement.companyFiles.companies.push(file.fileId) } fileList.push(file) } if(file.fileValue === 'CompanyProfilePresentation0') { if(worksheet.businessAgreement && worksheet.businessAgreement.companyFiles && worksheet.businessAgreement.companyFiles.companies && !worksheet.businessAgreement.companyFiles.companies.includes(file.fileId)) { worksheet.businessAgreement.companyFiles.companies.push(file.fileId) } fileList.push(file) } if(file.fileValue === 'vatFile') { if(worksheet.businessAgreement && worksheet.businessAgreement.companyFiles && worksheet.businessAgreement.companyFiles.companies && !worksheet.businessAgreement.companyFiles.companies.includes(file.fileId)) { worksheet.businessAgreement.companyFiles.companies.push(file.fileId) } fileList.push(file) } } if(worksheet.businessAgreement && worksheet.businessAgreement.companyFiles && worksheet.businessAgreement.companyFiles.companies) { workflow.worksheets.update({_id: worksheet._id}, { '$set': {'businessAgreement.companyFiles.companies' : worksheet.businessAgreement.companyFiles.companies} }) } for(i = 0; i < companies.length(); i++) { companie = companies[i] // print(companie.taxId, worksheet.supplierRegistration.taxId, companie.taxId === worksheet.supplierRegistration.taxId) if(companie.taxId === worksheet.supplierRegistration.taxId) { if(companie.files && Array.isArray(companie.files) && companie.files.length > 0) { for(j = 0; j < fileList.length; j++) { let alreadyFileInList = false for(k = 0; k < companie.files.length; k++) { if(companie.files[k].fileValue === fileList[j].fileValue) { alreadyFileInList = true break; } } if(!alreadyFileInList) { companie.files.push(fileList[j]) movedFileList.push(fileList[j]) } } } else { companie.files = fileList movedFileList.concat(fileList) } break } } } for(i = 0; i < companies.length(); i++) { company.companies.update({_id: companies[i]._id}, { '$set': {files : companies[i].files} }) } company.movedFiles.insert({ files: movedFileList })