sql >> Databasteknik >  >> NoSQL >> MongoDB

Hur man får en återuppringning på MongoDB collection.find()

Det är rätt syntax för återuppringning, men vad find ger till återuppringningen är en Cursor , inte en mängd dokument. Så om du vill att din återuppringning ska ge resultat som en mängd dokument, ring toArray på markören för att returnera dem:

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

Observera att din funktions återuppringning fortfarande måste ge ett err parameter så att den som ringer vet om frågan fungerade eller inte.

2.x-drivrutinsuppdatering

find returnerar nu markören istället för att tillhandahålla den via en återuppringning, så den typiska användningen kan förenklas till:

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

Eller i det här fallet där ett enstaka dokument förväntas, är det enklare att använda findOne :

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


  1. java.lang.IncompatibleClassChangeError:Implementerar klass Mongo

  2. Flytta underfält till toppnivå i projektion utan att lista alla nycklar

  3. Uppdatera fält med ett annat fälts värde i dokumentet

  4. Ändra åtkomst från MS Excel?