sql >> Database teknologi >  >> NoSQL >> MongoDB

mongo/node TypeError:tilbagekald er ikke en funktion ved forespørgsel

MongoDB Native Driver for Node følger Node.js-konventionen for async-funktioner, nemlig at hver metode modtager en tilbagekaldsfunktion som den sidste parameter. Så i stedet for db.collection.find(query).count() , skal din funktion omskrives som:

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

Parameteren count fanger resultatet af din forespørgsel.

Du kan også forenkle funktionen til db.collection.count(query, function(err, count){} .

Din indsættelsesfunktion bør også følge den samme konvention ved at bruge en tilbagekaldsfunktion i form af function(err, res){} som sidste parameter.

Jeg vil anbefale at se på MongoDB Native Driver Docs for mere information.

Redigeret for at give et eksempel i CoffeeScript: Her er funktionen omskrevet med CoffeeScript-syntaks.

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



  1. Rspec-tests fejler tilfældigt ved analyse af ActiveRecord-objekter genereret af Mongoid-hændelser

  2. Er dette en sikker måde at indsætte og opdatere en række objekter i mongodb?

  3. MongoDB aggregeret gruppearray til nøgle:sumværdi

  4. mongodb:hvordan man opdaterer array-element efter indeksnummer