Thursday, 26 September 2013

MongoDB and Node js Asynchronous programming

MongoDB and Node js Asynchronous programming

I am trying to solve an exam problem, so I cannot post my exam code as it
is. So I have simplified such that it addresses the core concept that I do
not understand. Basically, I do not know how to slow down node's
asynchronous execution so that my mongo code can catch up with it. Here is
the code:
MongoClient.connect('mongodb://localhost:27017/somedb', function(err, db) {
if (err) throw err;
var orphans = [];
for (var i; i < 100000; i++) {
var query = { 'images' : i };
db.collection('albums').findOne(query, function(err, doc_album) {
if(err) throw err;
if (doc_album === null) {
orphans.push(i);
}
});
}
console.dir(orphans.length);
return db.close();
});
So I am trying to create an array of those images who do not match my
query criteria. I end up with a orphans.length value of 0 since Node does
not wait for the callbacks to finish. How can I modify the code such that
the callbacks finish executing before I count the number of images in the
array that did not meet my query criteria?
Thanks in advance for your time.
Bharat

No comments:

Post a Comment