aboutsummaryrefslogtreecommitdiff
path: root/src/server/GarbageCollector.ts
diff options
context:
space:
mode:
authorSam Wilkins <samwilkins333@gmail.com>2019-07-09 14:34:07 -0400
committerSam Wilkins <samwilkins333@gmail.com>2019-07-09 14:34:07 -0400
commit68a433e689345b2fdd6279d7a80c5cf77cace1c3 (patch)
tree782181ba288c7035efac476764e67a6449f762ff /src/server/GarbageCollector.ts
parent9d9c16939bb296a9deb38bc34cbea9870aee4f76 (diff)
parentfb1e2078dc0e0cdc33f6037cd3c3e18ffded413e (diff)
Merge branch 'master' of https://github.com/browngraphicslab/Dash-Web into import
Diffstat (limited to 'src/server/GarbageCollector.ts')
-rw-r--r--src/server/GarbageCollector.ts10
1 files changed, 7 insertions, 3 deletions
diff --git a/src/server/GarbageCollector.ts b/src/server/GarbageCollector.ts
index 3c32a94c2..268239481 100644
--- a/src/server/GarbageCollector.ts
+++ b/src/server/GarbageCollector.ts
@@ -2,6 +2,7 @@ import { Database } from './database';
import * as path from 'path';
import * as fs from 'fs';
+import { Search } from './Search';
function addDoc(doc: any, ids: string[], files: { [name: string]: string[] }) {
for (const key in doc) {
@@ -60,7 +61,7 @@ function addDoc(doc: any, ids: string[], files: { [name: string]: string[] }) {
async function GarbageCollect() {
// await new Promise(res => setTimeout(res, 3000));
- const cursor = await Database.Instance.query({}, 'users');
+ const cursor = await Database.Instance.query({}, { userDocumentId: 1 }, 'users');
const users = await cursor.toArray();
const ids: string[] = users.map(user => user.userDocumentId);
const visited = new Set<string>();
@@ -90,12 +91,15 @@ async function GarbageCollect() {
cursor.close();
- const toDeleteCursor = await Database.Instance.query({ _id: { $nin: Array.from(visited) } });
- const toDelete = (await toDeleteCursor.toArray()).map(doc => doc._id);
+ 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`);
+ await Search.Instance.deleteDocuments(toDelete);
+ console.log("Cleared search documents");
+
const folder = "./src/server/public/files/";
fs.readdir(folder, (_, fileList) => {
const filesToDelete = fileList.filter(file => {