Het probleem dat u ondervindt, is dat zoekopdrachten met mangoesten geen volledige beloften opleveren -- rechtstreeks citeren van https:// 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'));
Met andere woorden, de then functie is syntaxis suiker en geen promise daarom is de bind en andere beloftefuncties werken niet.
Om het te laten werken, sluit je het af in een volledige belofte of gebruik je de exec functioneren zoals voorgesteld in de documenten