2012-02-16 45 views
10

Node.js aracılığıyla MongoDB ile arabirim kurmaya çalışıyorum ve count() yöntemiyle ilgili bir sorun yaşıyorum. node-mongodb-native kullanıyorum ve yaptığım işe yarayacak gibi görünüyor. Benim kod örneği: my query.params alanı boşsaMongoDB count koleksiyonu 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); 
     }); 
    }); 
    }); 
}; 

Ben her şeyi (argo ve imleç hem tanımlanmıştır aka) var olduğundan eminim, ancak yalnızca (yani bütün bir koleksiyon sayısını bulma) çalışır. Yani, herhangi bir seçici ile bir bulmaya çalışıyorum, buluntu çalışır, ama sonra geri dönen imleci saymayı reddeder. İnternette okuduğumdan, bunu yapmanın doğru yolu gibi görünüyor, ama belli ki bir şeyler yanlış. Her türlü yardım için teşekkürler! Eğer bir imleç gerekmiyorsa

+0

bunu saymak reddediyor demeniz ne anlama geliyor? Yanlış sayımı mı veriyor yoksa bir hata mı atıyor? –

+0

Gerçekten de hiçbir zaman bitmemesi gibi, geri sayıma geçenler asla aranmaz. Yaklaşık 10 dakika koşuyorum ve hiç bitmiyor. Coll.find çağrısı çok kısa bir zaman alır, ama bir şey sayımla çalışmıyor. – MrJaeger

+0

Aldığınız her hata nesnesini '' console.log''unu denediniz mi? Ve kullanılan sorgu parametreleri ve seçenekleri nelerdir? –

cevap

18

, bu gibi kod yazmak gerekir:

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); 
    }); 
    }); 
};