async checkCollectionIndexes(coll:Collection): Promise<any> { const indexes = this.getIndexes(); if (indexes && indexes.length) { let currIndexes; try { currIndexes = await coll.indexes(); } catch(e) { currIndexes = []; } for (let i of indexes) { const props = [ 'unique', 'sparse', 'min', 'max', 'expireAfterSeconds', 'key' ]; let c_i = currIndexes.find(t => { return (typeof i.name === 'undefined' || i.name === t.name) && _.isEqual(_.pick(i, props), _.pick(t, props)); }); if (!c_i) { if (this.createIndexes) { logger.info(this.name, 'creating missing index', i); await coll.createIndex(i.key, _.omit(i, 'key')); } else { logger.warn(this.name, 'missing index', i); } } } } this[__indexesChecked] = true; }
public getDummyData(type: string): Observable<string> { var userCollection: Collection = this.db.collection("dummydata"); return Observable.fromPromise<CursorResult>(userCollection.find({type: type}).limit(1).next()).map( doc => doc == null ? null : doc.content ); }
Promise.all(updates.map(update => { if (update.method === 'add') { return col.insertOne(update.racer); } else { return col.deleteOne({id: update.id}); } })).then(() => process.send('update'));
Promise.all(updates.map(update => { if (update.method === 'add') { return col.findOneAndUpdate({"id":update.team}, {"$push":{"racers":update.racer}}); } else { return col.findOneAndUpdate({"racer.id":update.id}, {"$pull":{"racers":{"id":update.id}}}); } })).then(() => process.send('update'));
Promise.all(both.map(obj => { if (typeof obj === "string") { return col.find({id: obj}); } else { if (obj.method === 'add') { return col.insertOne(obj.racer); } else { return col.deleteOne({id: obj.id}); } } })).then(() => process.send('both'));
Promise.all(both.map(obj => { if (typeof obj === "string") { return col.find({id: obj}); } else { if (obj.method === 'add') { return col.findOneAndUpdate({"id":obj.team}, {"$push":{"racers":obj.racer}}); } else { return col.findOneAndUpdate({"racer.id":obj.id}, {"$pull":{"racers":{"id":obj.id}}}); } } })).then(() => process.send('both'));
Observable.fromPromise<number>(this.historyCollection.count({username: username})).subscribe(count => { if (count == 0) { Observable.fromPromise<InsertOneWriteOpResult>(this.historyCollection.insertOne({username: username, days: [dayInfo]})).subscribe(() => { console.log("Finished creating"); observer.onNext("sup") }); } else { Observable.fromPromise<any>(this.historyCollection.findOneAndUpdate({username: username}, { $push: {days: dayInfo}})).subscribe(() => { console.log("Finished inserting"); observer.onNext(true); }); } });
return new Promise<Attendee>((resolve, reject) => { this._collection.find({ attendeeid: attendeeid }).limit(1).toArray().then((attendees: Attendee[]) => { resolve(attendees.length > 0 ? attendees[0] : null) }).catch((err) => { reject(new Error('Error when finding attendee: ' + err.message)) }) })
return new Promise<Hack>((resolve, reject) => { this._collection.find({ name: name }).limit(1).toArray().then((hacks: Hack[]) => { resolve(hacks.length > 0 ? hacks[0] : null) }).catch((err) => { reject(new Error('Error when finding hack: ' + err.message)) }) })
return new Promise<ObjectID>((resolve, reject) => { this._collection.insertOne(hack).then(() => { resolve() }).catch((err) => { reject(new Error('Could not insert hack: ' + err.message)) }) })