sql >> Base de Datos >  >> NoSQL >> MongoDB

mongo/node TypeError:la devolución de llamada no es una función en la consulta

MongoDB Native Driver for Node sigue la convención de Node.js para funciones asíncronas, es decir, que cada método recibe una función de devolución de llamada como último parámetro. Entonces, en lugar de db.collection.find(query).count() , su función debe reescribirse como:

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

El parámetro count captura el resultado de su consulta.

También puede simplificar la función a db.collection.count(query, function(err, count){} .

Su función de inserción también debe seguir la misma convención, utilizando una función de devolución de llamada con la forma de function(err, res){} como último parámetro.

Recomiendo mirar los MongoDB Native Driver Docs para más información.

Editado para dar un ejemplo en CoffeeScript: Aquí está la función reescrita con la sintaxis de CoffeeScript.

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