对node-mongodb-native语法感到困惑

时间:2012-10-15 08:51:24

标签: node.js mongodb node-mongodb-native

我刚刚进入节点和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 的用法。我真的很困惑。教程是否过时了?这段代码出了什么问题?

1 个答案:

答案 0 :(得分:0)

如果usersnull,则err可能表示问题所在。在代码中添加if (err)路径,以便在设置时记录err

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