MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

mongo/node TypeError:Rückruf ist keine Funktion bei Abfrage

Der MongoDB Native Driver for Node folgt der Node.js-Konvention für asynchrone Funktionen, nämlich dass jede Methode als letzten Parameter eine Callback-Funktion erhält. Also statt db.collection.find(query).count() , sollte Ihre Funktion wie folgt umgeschrieben werden:

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

Der Parameter count erfasst das Ergebnis Ihrer Abfrage.

Sie könnten die Funktion auch zu db.collection.count(query, function(err, count){} vereinfachen .

Ihre Einfügefunktion sollte ebenfalls der gleichen Konvention folgen und eine Callback-Funktion in Form von function(err, res){} verwenden als letzten Parameter.

Ich würde empfehlen, sich die MongoDB Native Driver Docs anzusehen für weitere Informationen.

Bearbeitet, um ein Beispiel in CoffeeScript zu geben: Hier ist die Funktion, die mit CoffeeScript-Syntax umgeschrieben wurde.

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