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

Jak získat zpětné volání na MongoDB collection.find()

To je správná syntaxe zpětného volání, ale co find poskytuje zpětnému volání Cursor , nikoli pole dokumentů. Pokud tedy chcete, aby vaše zpětné volání poskytovalo výsledky jako pole dokumentů, zavolejte toArray na kurzor, abyste je vrátili:

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

Pamatujte, že zpětné volání vaší funkce musí stále poskytovat err parametr, aby volající věděl, zda dotaz fungoval nebo ne.

Aktualizace ovladače 2.x

find nyní vrací kurzor místo toho, aby jej poskytoval prostřednictvím zpětného volání, takže typické použití lze zjednodušit na:

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

Nebo v tomto případě, kdy se očekává jeden dokument, je jednodušší použít findOne :

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


  1. Způsobí nastavení slave-read-only no ne, způsobí, že slave potvrdí každé vyhledávání hash s hlavním?

  2. mongod --bind_ip pomocí docker-compose verze 2

  3. MongoDB findOneAndReplace()

  4. Redis vs MongoDB