diff --git a/cli/delete-invalid-users.js b/cli/delete-invalid-users.js new file mode 100644 index 000000000..41bbc2bab --- /dev/null +++ b/cli/delete-invalid-users.js @@ -0,0 +1,40 @@ +const { default: User, deleteUser } = require('../built/models/user'); +const { default: zip } = require('@prezzemolo/zip') + +const migrate = async (user) => { + try { + await deleteUser(user._id); + return true; + } catch (e) { + return false; + } +} + +async function main() { + const count = await User.count({ + uri: /#/ + }); + + const dop = 1 + const idop = ((count - (count % dop)) / dop) + 1 + + return zip( + 1, + async (time) => { + console.log(`${time} / ${idop}`) + const doc = await User.find({ + uri: /#/ + }, { + limit: dop, skip: time * dop + }) + return Promise.all(doc.map(migrate)) + }, + idop + ).then(a => { + const rv = [] + a.forEach(e => rv.push(...e)) + return rv + }) +} + +main().then(console.dir).catch(console.error)