sql >> Database >  >> NoSQL >> MongoDB

Hoe krijg ik een callback op MongoDB collection.find()

Dat is de juiste callback-syntaxis, maar wat find geeft aan de terugbel is een Cursor , niet een reeks documenten. Dus als u wilt dat uw callback resultaten oplevert als een reeks documenten, belt u toArray op de cursor om ze terug te geven:

collection.find({'_id':o_id}, function(err, cursor){
    cursor.toArray(callback);
    db.close();
});

Houd er rekening mee dat de callback van uw functie nog steeds een err . moet geven parameter zodat de beller weet of de query werkte of niet.

2.x stuurprogramma-update

find geeft nu de cursor terug in plaats van deze via een callback te geven, dus het typische gebruik kan worden vereenvoudigd tot:

collection.find({'_id': o_id}).toArray(function(err, results) {...});

Of in dit geval waar een enkel document wordt verwacht, is het eenvoudiger om findOne . te gebruiken :

collection.findOne({'_id': o_id}, function(err, result) {...});


  1. Ideeën voor het schalen van chat in AWS?

  2. Webscraping en crawlen met Scrapy en MongoDB

  3. MongoDB $mergeObjects

  4. Hadoop Combiner Introductie, werking en voordelen