diff options
Diffstat (limited to 'src/server/GarbageCollector.ts')
-rw-r--r-- | src/server/GarbageCollector.ts | 10 |
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 => { |