Проблемът, който имате, е, че заявките на mongoose не връщат пълни обещания за fledge -- директно цитиране на 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'));
С други думи, then
функцията е синтактична захар, а не promise
поради което bind
и други обещаващи функции не работят.
За да работи, или го обгръщате в пълно обещание, или използвате exec
функция, както е предложено в документите