Itu sintaks panggilan balik yang benar, tetapi apa yang find menyediakan untuk panggilan balik adalah Cursor , bukan larik dokumen. Jadi jika Anda ingin panggilan balik Anda memberikan hasil sebagai larik dokumen, panggil toArray pada kursor untuk mengembalikannya:
collection.find({'_id':o_id}, function(err, cursor){
cursor.toArray(callback);
db.close();
});
Perhatikan bahwa panggilan balik fungsi Anda masih perlu memberikan err parameter sehingga pemanggil mengetahui apakah kueri berfungsi atau tidak.
2.x Pembaruan Driver
find sekarang mengembalikan kursor daripada menyediakannya melalui panggilan balik, sehingga penggunaan tipikal dapat disederhanakan menjadi:
collection.find({'_id': o_id}).toArray(function(err, results) {...});
Atau dalam kasus ini di mana satu dokumen diharapkan, lebih mudah menggunakan findOne :
collection.findOne({'_id': o_id}, function(err, result) {...});