sql >> Databáze >  >> NoSQL >> MongoDB

node.js mongodb - collection.find().toArray(zpětné volání) - zpětné volání není voláno

Nepoužíváte open zpětné volání, takže pokud se pokoušíte provést findall požadavek hned po vytvoření dao pak to nebude připraveno.

Pokud je váš kód takový, nebude fungovat.

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

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

Testoval jsem to a nenachází záznamy a také nedává žádnou chybu. Myslím, že by to mělo hlásit chybu.

Ale pokud to změníte tak, že zavoláte konstruktoru, pak by to mělo fungovat.

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

A vytvořte svůj kód takto.

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



  1. Výkon MongoDB toArray

  2. Jak získat poslední zprávu z konverzace v mongodb

  3. Zobrazuje se chyba, chyba:nelze se připojit k serveru 127.0.0.1 shell/mongo.js &při pokusu o spuštění mongodb na mac osx lion

  4. AWS Lambda (Node.js, v. 8.10) &Mongoose:Časový limit připojení MongoNetworkError k DB vypršel