Node.js Mongo请求的同步问题

Node.js Mongo请求的同步问题,node.js,mongodb,Node.js,Mongodb,我想执行mongodb请求,等待它结束并返回结果 问题在于mongo请求之后的指令看起来是在请求结束甚至开始之前执行的 users_opposite = collection.find( {"mode" : opposite} ).forEach(function (usersOpposite) { users_closed.push(usersOpposite); console.log(users_closed.length); }); console.log(users_

我想执行mongodb请求,等待它结束并返回结果

问题在于mongo请求之后的指令看起来是在请求结束甚至开始之前执行的

users_opposite = collection.find( {"mode" : opposite} ).forEach(function (usersOpposite) {

    users_closed.push(usersOpposite);
    console.log(users_closed.length);
});
console.log(users_closed.length);
console.log("test");
结果我得到了这个

0 测试 1. 2. 3. 四,

我怎么能对下面的指令说要等到foreach完成


感谢您的帮助。

这不是
forEach
而是
集合。查找需要完成的
,然后您可以在回调中获得结果,如:

collection.find({ mode: opposite }, function(err, usersOpposite) {
    console.log(usersOpposite);
});

它不是
forEach
而是
collection。find
需要完成,然后您可以在回调中获得结果,如:

collection.find({ mode: opposite }, function(err, usersOpposite) {
    console.log(usersOpposite);
});

您必须等待collection.find()的执行


正如格雷戈里在评论中所建议的那样,这里有更多信息

您必须等待collection.find()的执行


正如格雷戈里在评论中已经指出的那样,这里的更多信息

可能的重复不能使这项工作成功。我知道我把事情搞砸了…我在下面的
集合中遇到了一个错误。find({mode:absert},function(err,usersOpposite){console.log(usersOpposite);})。forEach(function(usersOpposite){users_closed.push(usersOpposite);console.log(users_closed.length);});无法执行此操作。我知道我把事情搞砸了…我在下面的
集合中遇到了一个错误。find({mode:absert},function(err,usersOpposite){console.log(usersOpposite);})。forEach(function(usersOpposite){users_closed.push(usersOpposite);console.log(users_closed.length);});