2012-10-15 65 views
0

我剛剛進入node和mongodb並遇到了第一個障礙。關於node-mongodb-native語法的困惑

我走過的教程,其中的代碼看起來是這樣的:

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"}); 

事實上,我不能在那裏提到的使用情況發現與返回遊標回調的文檔中發現任何地方。我很困惑。該教程是否過時?這個代碼有什麼問題?

回答

0

如果usersnull,那麼很可能是err指出問題所在。設置時,向您的代碼添加if (err)路徑以記錄err

find可以用你描述的兩種方式工作。回調參數是可選的,如果你不提供它,你可以使用返回的光標。請參閱文檔:link