Exemple #1
0
  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;
  }
Exemple #2
0
 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'));
Exemple #7
0
 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))
   })
 })
Exemple #9
0
 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))
   })
 })
Exemple #10
0
 return new Promise<ObjectID>((resolve, reject) => {
   this._collection.insertOne(hack).then(() => {
     resolve()
   }).catch((err) => {
     reject(new Error('Could not insert hack: ' + err.message))
   })
 })