mongodb异步问题NodeJS

时间:2015-02-21 16:58:30

标签: node.js mongodb asynchronous promise

我使用mongodb一段时间并多次反击过同样的问题..就像这样:

XCollection.find({})
.each(function (err, x) {
    if (err) throw err;

         branchCollection.findOne(
             {_id: new ObjectID(x.branchId)}
               , function(err, doc){
                       console.log(x.branchId);
               });
.....

我发现有时候findOne工作得不好,x文件会因为每个上层而发生变化,这会影响我的代码!我认识到问题是因为那些请求(db请求)是异步的。但建议的方法是什么来处理这个问题?

谢谢, 最诚挚的问候

1 个答案:

答案 0 :(得分:0)

您无需使用新的ObjectID来查询ID字段。字符串就足够了。

  branchCollection.findOne(
         {_id: x.branchId}
           , function(err, doc){
                   console.log(doc._id);
           });

另一方面,您不应该在异步调用中使用x变量。你应该使用:

console.log(doc._id)

除此之外,我不确定我明白你的问题是什么?你收到错误了吗?