sql >> Databasteknik >  >> NoSQL >> MongoDB

mongo/node TypeError:återuppringning är inte en funktion vid fråga

MongoDB Native Driver for Node följer Node.js-konventionen för asynkronfunktioner, nämligen att varje metod får en callback-funktion som den sista parametern. Så istället för db.collection.find(query).count() , din funktion bör skrivas om som:

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

Parametern count fångar din frågas resultat.

Du kan också förenkla funktionen till db.collection.count(query, function(err, count){} .

Din infogningsfunktion bör också följa samma konvention, med en återuppringningsfunktion i form av function(err, res){} som sista parameter.

Jag skulle rekommendera att titta på MongoDB Native Driver Docs för mer information.

Redigerad för att ge exempel i CoffeeScript: Här är funktionen omskriven med CoffeeScript-syntax.

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



  1. Hur upprätthåller man främmande nycklar i NoSql-databaser (MongoDB)?

  2. Erhålla $gruppresultat med gruppantal

  3. kommandomarkörens objekt kan inte tecknas

  4. Hur kör man råa mongoDB-kommandon med mongoose?