diff options
| author | syuilo <syuilotan@yahoo.co.jp> | 2018-04-15 12:11:09 +0900 |
|---|---|---|
| committer | syuilo <syuilotan@yahoo.co.jp> | 2018-04-15 12:11:09 +0900 |
| commit | efd87c762507a9541557a07ebc42485709aad161 (patch) | |
| tree | 242f7b78ed38ade3a304140497091dbbdc8332c7 /cli | |
| parent | :pizza: (diff) | |
| download | sharkey-efd87c762507a9541557a07ebc42485709aad161.tar.gz sharkey-efd87c762507a9541557a07ebc42485709aad161.tar.bz2 sharkey-efd87c762507a9541557a07ebc42485709aad161.zip | |
:v:
Diffstat (limited to 'cli')
| -rw-r--r-- | cli/delete-invalid-users.js | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/cli/delete-invalid-users.js b/cli/delete-invalid-users.js new file mode 100644 index 0000000000..41bbc2baba --- /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) |