MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

node.js mongodb - collection.find().toArray(callback) - il callback non viene chiamato

Non stai usando open richiamata quindi se stai cercando di fare il findall richiesta subito dopo aver creato il dao allora non sarà pronto.

Se il tuo codice è così, non funzionerà.

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

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

L'ho testato e non trova record e inoltre non dà errori. Penso che dovrebbe dare un errore.

Ma se lo modifichi in modo da richiamare il costruttore, dovrebbe funzionare.

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

E crea il tuo codice in questo modo.

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