MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

node.js mongodb - collection.find().toArray(callback) - le rappel n'est pas appelé

Vous n'utilisez pas le open rappel donc si vous essayez de faire le findall demande juste après avoir créé le dao alors ce ne sera pas prêt.

Si votre code est comme ça, cela ne fonctionnera pas.

var dao = new DataAccessObject("my_dbase", "localhost", 27017);

dao.findAll("my_collection",function() {console.log(arguments);});

Je l'ai testé et il ne trouve pas d'enregistrements, et il ne donne également aucune erreur. Je pense que cela devrait donner une erreur.

Mais si vous le modifiez pour rappeler le constructeur, cela devrait fonctionner.

var DataAccessObject = function(db_name, host, port, callback){
    this.db = new Db(db_name, new Server(host, port, {auto_reconnect: true}, {}));
    this.db.open(callback);
}

Et faites votre code comme ceci.

var dao = new DataAccessObject("my_dbase", "localhost", 27017, function() {
    dao.findAll("my_collection",function() {console.log(arguments);});
});