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

mongo/node TypeError:callback non è una funzione su query

Il driver MongoDB Native per Node segue la convenzione Node.js per le funzioni asincrone, ovvero che ogni metodo riceve una funzione di callback come ultimo parametro. Quindi, invece di db.collection.find(query).count() , la tua funzione dovrebbe essere riscritta come:

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

Il parametro count acquisisce il risultato della tua query.

Puoi anche semplificare la funzione in db.collection.count(query, function(err, count){} .

Anche la tua funzione di inserimento dovrebbe seguire la stessa convenzione, utilizzando una funzione di callback con forma di function(err, res){} come ultimo parametro.

Consiglierei di guardare i Documenti sui driver nativi MongoDB per ulteriori informazioni.

Modificato per fornire un esempio in CoffeeScript: Ecco la funzione riscritta con la sintassi CoffeeScript.

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