2012-02-16 17 views
10

Estoy intentando interactuar con MongoDB a través de Node.js y estoy teniendo problemas con el método count(). Estoy usando node-mongodb-native y parece que lo que estoy haciendo debería funcionar. Mi ejemplo de código:Colección de recuento de MongoDB Node.js

var get_total_num_docs = function(db_client, query, cb){ 
    db_client.collection(query['collection'], function(e, coll) { 
    coll.find(query.params, query.options, function (e, cursor) { 
     cursor.count(function (e, count) { 
     console.log(count); 
     return cb(e, count); 
     }); 
    }); 
    }); 
}; 

Estoy seguro de que todo existe (también conocido como Coll y el cursor, se definen), pero sólo funciona si el campo está vacío mi query.params (es decir, la búsqueda de la cuenta de una colección entera). Entonces, si intento ejecutar un hallazgo con cualquier tipo de selector, el hallazgo funciona, pero luego se niega a contar con el cursor devuelto. Por lo que he leído en línea, esta parece ser la forma correcta de hacerlo, pero obviamente algo está mal. ¡Gracias por cualquier y toda la ayuda!

+0

¿Qué quiere decir cuando se dice que se niega a contar? ¿Te está dando el conteo incorrecto o está arrojando un error? –

+0

Como literalmente, simplemente nunca termina, también se llama nunca la devolución de llamada pasada al recuento. Lo he ejecutado por alrededor de 10 minutos y simplemente nunca termina. La llamada coll.find lleva muy poco tiempo, pero algo simplemente no funciona con el conteo. – MrJaeger

+0

¿Has probado '' console.log'''ngging cada objeto de error que recibes? ¿Y cuáles son los parámetros de consulta y las opciones que se utilizan? –

Respuesta

18

Si usted no necesita un cursor, se debe escribir el código como el siguiente:

var get_total_num_docs = function(db_client, query, cb){ 
    db_client.collection(query['collection'], function(e, coll) { 
    coll.find(query.params, query.options).count(function (e, count) { 
     console.log(count); 
     return cb(e, count); 
    }); 
    }); 
}; 
Cuestiones relacionadas