diff options
Diffstat (limited to 'src/server/database.ts')
-rw-r--r-- | src/server/database.ts | 62 |
1 files changed, 47 insertions, 15 deletions
diff --git a/src/server/database.ts b/src/server/database.ts index 16211a2f6..51103520e 100644 --- a/src/server/database.ts +++ b/src/server/database.ts @@ -9,49 +9,81 @@ export class Database { private MongoClient = mongodb.MongoClient; private url = 'mongodb://localhost:27017/Dash'; - public update(id: String, value: any) { - this.MongoClient.connect(this.url, (err, db) => { + public update(id: string, value: any) { + this.MongoClient.connect(this.url, { bufferMaxEntries: 1 }, (err, db) => { let collection = db.db().collection('documents'); - collection.update({ _id: id }, { $set: value }); + collection.update({ _id: id }, { $set: value }, { + upsert: true + }); db.close(); }); } public delete(id: string) { - this.MongoClient.connect(this.url, (err, db) => { + this.MongoClient.connect(this.url, { bufferMaxEntries: 1 }, (err, db) => { let collection = db.db().collection('documents'); collection.remove({ _id: id }); db.close(); }); } - public insert(kvpairs: any) { + public deleteAll() { this.MongoClient.connect(this.url, (err, db) => { let collection = db.db().collection('documents'); - collection.insertOne(kvpairs, () => { }); + collection.deleteMany({}); + }) + } + + public insert(kvpairs: any) { + this.MongoClient.connect(this.url, { bufferMaxEntries: 1 }, (err, db) => { + let collection = db.db().collection('documents'); + collection.insertOne(kvpairs, (err: any, res: any) => { + if (err) { + // console.log(err) + return + } + }); db.close(); }); } - public getDocument(id: String): string | undefined { + public getDocument(id: string, fn: (res: any) => void) { var result: JSON; - this.MongoClient.connect(this.url, (err, db) => { + this.MongoClient.connect(this.url, { + bufferMaxEntries: 1 + }, (err, db) => { if (err) { console.log(err) return undefined } let collection = db.db().collection('documents'); - collection.findOne({ _id: id }, (err: any, res: any) => result = res) - console.log(result) + collection.findOne({ _id: id }, (err: any, res: any) => { + result = res + if (!result) { + fn(undefined) + } + fn(result) + }) db.close(); - if (!result) { - console.log("not found") + }); + } + + public getDocuments(ids: string[], fn: (res: any) => void) { + var result: JSON; + this.MongoClient.connect(this.url, { + bufferMaxEntries: 1 + }, (err, db) => { + if (err) { + console.log(err) return undefined } - console.log("found") - return result; + let collection = db.db().collection('documents'); + let cursor = collection.find({ _id: { "$in": ids } }) + cursor.toArray((err, docs) => { + fn(docs); + }) + db.close(); }); - return undefined } public print() { |