diff options
author | bob <bcz@cs.brown.edu> | 2019-07-10 16:53:21 -0400 |
---|---|---|
committer | bob <bcz@cs.brown.edu> | 2019-07-10 16:53:21 -0400 |
commit | 63cb729640fb9c1a027c6c6008766f336dad2185 (patch) | |
tree | 952d857d00418bf9756f423920640d3c73a858de /src/server/GarbageCollector.ts | |
parent | 4fb942ccc008f0952833b809be6301a5405bfe20 (diff) | |
parent | abb53ad8a5cbf2439aac420e9ec16a3a461dec1e (diff) |
Merge branch 'master' of https://github.com/browngraphicslab/Dash-Web
Diffstat (limited to 'src/server/GarbageCollector.ts')
-rw-r--r-- | src/server/GarbageCollector.ts | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/src/server/GarbageCollector.ts b/src/server/GarbageCollector.ts index 268239481..59682e51e 100644 --- a/src/server/GarbageCollector.ts +++ b/src/server/GarbageCollector.ts @@ -94,8 +94,17 @@ async function GarbageCollect() { const toDeleteCursor = await Database.Instance.query({ _id: { $nin: Array.from(visited) } }, { _id: 1 }); const toDelete: string[] = (await toDeleteCursor.toArray()).map(doc => doc._id); toDeleteCursor.close(); - const result = await Database.Instance.delete({ _id: { $in: toDelete } }, "newDocuments"); - console.log(`${result.deletedCount} documents deleted`); + let i = 0; + let deleted = 0; + while (i < toDelete.length) { + const count = Math.min(toDelete.length, 5000); + const toDeleteDocs = toDelete.slice(i, i + count); + i += count; + const result = await Database.Instance.delete({ _id: { $in: toDeleteDocs } }, "newDocuments"); + deleted += result.deletedCount || 0; + } + // const result = await Database.Instance.delete({ _id: { $in: toDelete } }, "newDocuments"); + console.log(`${deleted} documents deleted`); await Search.Instance.deleteDocuments(toDelete); console.log("Cleared search documents"); |