const MongoClient = require('mongodb').MongoClient; const dotenv = require('dotenv'); const dotenvExpand = require('dotenv-expand'); let dotenvConf = dotenv.config(); dotenvExpand(dotenvConf); async function addUpdatedDate() { let client = await MongoClient.connect(process.env.MONGO_CONNECTION_STRING, { useUnifiedTopology: true }); let db = client.db('autocatdev'); let collection = db.collection('vehicles'); let vehicles = await collection.find().toArray(); for(let vehicle of vehicles) { let updatedDate = vehicle.addedDate; if(vehicle.events && vehicle.events.length > 0) { let lastEvent = vehicle.events.reduce((acc, cur) => acc.date > cur.date ? acc : cur); updatedDate = Math.max(1000*lastEvent.date, vehicle.addedDate); } console.log(updatedDate); await collection.updateOne({ _id: vehicle._id }, { $set: { updatedDate } }); } } async function addDebugInfoStatus() { let client = await MongoClient.connect(process.env.MONGO_CONNECTION_STRING, { useUnifiedTopology: true }); let db = client.db('autocatdev'); let collection = db.collection('vehicles'); let vehicles = await collection.find().toArray(); for(let vehicle of vehicles) { if(vehicle.debugInfo) { for(const [providerName] of Object.entries(vehicle.debugInfo)) { if(vehicle.debugInfo[providerName]) { vehicle.debugInfo[providerName].status = vehicle.debugInfo[providerName].error == null ? 0 : 1; } } await collection.updateOne({ _id: vehicle._id }, { $set: { debugInfo: vehicle.debugInfo } }); } } } (async () => { //await addUpdatedDate(); await addDebugInfoStatus(); console.log('====== Done ======'); })();