MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

mongo/node TypeError :le rappel n'est pas une fonction sur la requête

Le pilote natif MongoDB pour Node suit la convention Node.js pour les fonctions asynchrones, à savoir que chaque méthode reçoit une fonction de rappel comme dernier paramètre. Donc au lieu de db.collection.find(query).count() , votre fonction doit être réécrite comme suit :

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

Le paramètre count capture le résultat de votre requête.

Vous pouvez également simplifier la fonction en db.collection.count(query, function(err, count){} .

Votre fonction d'insertion doit également suivre la même convention, en utilisant une fonction de rappel sous la forme function(err, res){} comme dernier paramètre.

Je vous recommande de consulter la MongoDB Native Driver Docs pour plus d'informations.

Modifié pour donner un exemple dans CoffeeScript : Voici la fonction réécrite avec la syntaxe CoffeeScript.

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