MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

So verwenden Sie eine Mongo-Verbindung mit Versprechen wieder

Nein, das ist unmöglich, wenn Sie nicht wissen, ob die Datenbank bereits verbunden ist oder nicht. Wenn Sie möglicherweise zuerst eine Verbindung herstellen müssen und dies asynchron ist, dann this.db muss ein Versprechen liefern, und Sie müssen then verwenden .

Beachten Sie, dass Sie mit Bluebird diesen Code ein wenig kürzen können, und vermeiden Sie das wortreiche .then() Rückruf mithilfe von .call() Methode :

Job.prototype.getDb = function() {
  if (!this.db)
    this.db = Mongo.connectAsync(this.options.connection);
  return this.db;
};
Job.prototype.test = function() {
  return this.getDb().call('collection', 'abc').call('findAsync');
};