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

mongo/node TypeError:zpětné volání není funkce na dotaz

MongoDB Native Driver for Node se řídí konvencí Node.js pro asynchronní funkce, konkrétně že každá metoda přijímá funkci zpětného volání jako poslední parametr. Takže místo db.collection.find(query).count() , vaše funkce by měla být přepsána jako:

db.collection.find(query).count( function(err, count){ // do stuff here } 

Parametr count zachytí výsledek vašeho dotazu.

Funkci můžete také zjednodušit na db.collection.count(query, function(err, count){} .

Vaše funkce vložení by se také měla řídit stejnou konvencí pomocí funkce zpětného volání ve tvaru function(err, res){} jako poslední parametr.

Doporučuji podívat se na Dokumenty k nativnímu ovladači MongoDB pro více informací.

Upraveno jako příklad v CoffeeScript: Zde je funkce přepsaná syntaxí CoffeeScript.

db.Event.count(eventobj, (err, count) ->
    // do stuff



  1. Co je Procfile? a Web a pracovník

  2. $lookup na ObjectId v poli

  3. odlišné s více poli a s podmínkou kde v mongodb

  4. Vložte prvek do vnořených polí v MongoDB