我使用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请求)是异步的。但建议的方法是什么来处理这个问题?
谢谢, 最诚挚的问候
答案 0 :(得分:0)
您无需使用新的ObjectID来查询ID字段。字符串就足够了。
branchCollection.findOne(
{_id: x.branchId}
, function(err, doc){
console.log(doc._id);
});
另一方面,您不应该在异步调用中使用x变量。你应该使用:
console.log(doc._id)
除此之外,我不确定我明白你的问题是什么?你收到错误了吗?