mongodb的操作求助!

db_handle = new mongodb.Db("spa", mongodb_server, {safe: true});

db_handle.collection(
    obj_type,
    function(outer_error, collection){
        collection.find(find_map, fields_map).toArray(function(inner_error, map_list){
            callback(map_list);
        });
    }
);

上面的操作为什么要在collection方法里面操作,貌似被包了两层,有点看不懂哦

阅读 3.2k
4 个回答

NodeJS的精髓在于异步非阻塞,明白了这点很多事情就好理解了。说直白点就是:需要等待的地方就会有一个函数,等这个操作准备好的时候会调用这个函数。所以你这里的两个函数其实代表了两个等待:

  1. 连接数据库。这是网络操作需要等待,所以第一个函数是在等这个

  2. 获取结果。你的查询需要一定时间才能返回,所以第二个函数是在等结果返回

3楼正解,已点赞

第一层的回调函数中拿到集合,
第二层集合查询,回调得到查询结果

谢谢邀请。我说下我个人的理解吧!mongodb作为非关系文档型数据库,我对于操作mongodb一直当成json的形式,一级级的取数据就可以了。给人的感觉就是一层层的。

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