diff options
Diffstat (limited to 'src/server/database.ts')
-rw-r--r-- | src/server/database.ts | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/src/server/database.ts b/src/server/database.ts index a17447629..29a8ffafa 100644 --- a/src/server/database.ts +++ b/src/server/database.ts @@ -126,12 +126,16 @@ export class Database { } } - public query(query: any, collectionName = "newDocuments"): Promise<mongodb.Cursor> { + public query(query: { [key: string]: any }, projection?: { [key: string]: 0 | 1 }, collectionName = "newDocuments"): Promise<mongodb.Cursor> { if (this.db) { - return Promise.resolve<mongodb.Cursor>(this.db.collection(collectionName).find(query)); + let cursor = this.db.collection(collectionName).find(query); + if (projection) { + cursor = cursor.project(projection); + } + return Promise.resolve<mongodb.Cursor>(cursor); } else { return new Promise<mongodb.Cursor>(res => { - this.onConnect.push(() => res(this.query(query, collectionName))); + this.onConnect.push(() => res(this.query(query, projection, collectionName))); }); } } |