MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Използвайте bluebird за mongoose, got .bind не е функция

Проблемът, който имате, е, че заявките на 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 функция, както е предложено в документите




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Резултатът от заявката на Mongoose само за четене ли е?

  2. Mongodb актуализира дълбоко вложен поддокумент

  3. MongoDB:как да получите db.stats() от API

  4. Как да се свържете правилно с клъстер Atlas M0 (Free Tier) чрез драйвер на Java?

  5. MongoError:Не могат да се извлекат гео ключове