import mongoose from 'mongoose'; const permitsModel = mongoose.model( 'permit', new mongoose.Schema( { status: String, cleanStatus: String, }, { strict: false } ) ); const configModel = mongoose.model( 'config', new mongoose.Schema({ tenantId: { type: String, unique: true, }, emailIds: Array, statusMap: Object, folders: Object, updatedAt: Date, updatedBy: { type: mongoose.Types.ObjectId, ref: 'user', }, }), 'config' ); (async () => { console.log(new Date().toISOString() + ' Started status script...'); await mongoose.connect(process.env.DB_URI); const config = await configModel.findOne({ tenantId: 'arf4w59nzduytv7' }); const permits = await permitsModel.find(); const statusMap = config.statusMap; const flatMap = {}; for (const status in statusMap) { for (const countyStatus of statusMap[status]) { flatMap[countyStatus] = status; } } for (const permit of permits) { try { const cleanStatus = flatMap[permit.status]; if (!cleanStatus) throw new Error( `Invalid status: ${permit.status} | recId: ${permit.pid}` ); await permitsModel.updateOne( { pid: permit.pid }, { $set: { cleanStatus: cleanStatus } } ); } catch (err) { console.log(err); } } await mongoose.connection.close(); })().catch((err) => console.log(err));