0

我刚刚进入 node 和 mongodb 并遇到了第一个障碍。

我正在浏览一个代码如下所示的教程:

var db = new mongo.Db("database", new mongo.Server(host, port, {}));
db.open(function(error){
  db.collection("user", function(err, collection){
    collection.find({"id":"1"}, function(error, cursor){
      cursor.toArray(function(err, users){
        if(users.length == 0){
          console.log("no such user");
        } else if {
          console.log("user found: ", users[0]);
        }
     });
   });
 });

但是代码无法工作,说用户为空。(我确实有一个插入条目的代码)无论如何,在试图弄清楚发生了什么时,我遇到了文档,它使用同步模式进行查找而不是使用回调来检索光标。代码是这样的:

var cursor = collection.find({"id":"1"});

事实上,我在文档中找不到任何地方提到使用find和返回游标的回调。我真的很困惑。教程过时了吗?这段代码有什么问题?

4

1 回答 1

0

如果usersnull,那么这很可能err表明问题所在。添加if (err)路径到您的代码以err在设置时记录。

find可以以您描述的两种方式工作。回调参数是可选的,如果你不提供它,你可以使用返回的游标。请参阅文档:链接

于 2012-10-15T13:01:17.350 回答