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) {...});