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

mongo/node TypeError:обратното извикване не е функция при заявка

Родният драйвер на MongoDB за Node следва конвенцията на Node.js за асинхронни функции, а именно, че всеки метод получава функция за обратно извикване като последен параметър. Така че вместо db.collection.find(query).count() , вашата функция трябва да бъде пренаписана като:

db.collection.find(query).count( function(err, count){ // do stuff here } 

Параметърът count улавя резултата от вашата заявка.

Можете също така да опростите функцията до db.collection.count(query, function(err, count){} .

Вашата функция за вмъкване също трябва да следва същата конвенция, като използва функция за обратно извикване с формата на function(err, res){} като последен параметър.

Бих препоръчал да разгледате Документите за собствен драйвер на MongoDB за повече информация.

Редактирано, за да даде пример в CoffeeScript: Ето функцията, пренаписана със синтаксиса на CoffeeScript.

db.Event.count(eventobj, (err, count) ->
    // do stuff



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Къде е регистрационният файл на mongodb в mac

  2. как да конвертирате масив в обект в MongoDB

  3. Mongo не може да стартира

  4. Внедряване на оценка на обекта на израз на заявка, подобна на goMongoDB

  5. $pull multiple object в Mongo не работи