mongodb cursor的each方法调用返回结果为空

var Mongo = require('mongodb').MongoClient;
var url = 'mongodb://localhost:27017/test'

var handler=function(){}
handler.prototype.queryAll=function(){

var result =[];
Mongo.connect(url,function(err,db){
    var cursor = db.collection("mydb").find();
    cursor.each(function(err,doc){
        if(doc)
        result.push(doc)
    })
db.close()
})
// return result

}

module.exports = handler

each方法好像是个异步的方法,而且也没有办法判断查询是否已经结束了,以至于return result是个空

阅读 4k
1 个回答
新手上路,请多包涵

db.close()先执行了。

判读doc是不是有效,无效则是遍历完了,关闭db。
Mongo.connect(url,function(err,db){

var cursor = db.collection("mydb").find();
cursor.each(function(err,doc){
    if(!doc)db.close();
    
    if(doc)
    result.push(doc)
})

})

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题