MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Как да получите обратно извикване на MongoDB collection.find()

Това е правилният синтаксис за обратно извикване, но какво find предоставя на обратното извикване е Cursor , а не масив от документи. Така че, ако искате вашето обратно извикване да предоставя резултати като масив от документи, извикайте toArray върху курсора, за да ги върнете:

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

Имайте предвид, че обратното извикване на вашата функция все още трябва да предостави err параметър, така че обаждащият се да знае дали заявката е работила или не.

2.x актуализация на драйвер

find сега връща курсора, вместо да го предоставя чрез обратно извикване, така че типичната употреба може да бъде опростена до:

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

Или в този случай, когато се очаква един документ, е по-лесно да използвате findOne :

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


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Как работи hideIndex() в MongoDB

  2. Автоматизиране на разполагане на база данни на MongoDB

  3. Подготовка на MongoDB сървър за производство

  4. MongoDB $binarySize

  5. Как да разрешите ClassNotFoundException:com.mongodb.connection.BufferProvider?