MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Use bluebird para mangusto, tem .bind não é uma função


O problema que você está tendo é que as consultas do mangusto não retornam promessas completas - citando diretamente http:// mongoosejs.com/docs/promises.html (v4.7.6)
// A query is not a fully-fledged promise, but it does have a `.then()`.
query.then(function (doc) {
  // use doc
});

// `.exec()` gives you a fully-fledged promise
var promise = query.exec();
assert.ok(promise instanceof require('mpromise'));

Em outras palavras, o then função é açúcar de sintaxe e não uma promise é por isso que o bind e outras funções de promessa não funcionam.

Para fazê-lo funcionar, você o envolve em uma promessa completa ou usa o exec funcionar como sugerido nos documentos