2013-05-22 55 views
0

我用mongodb來取集名爲froggers的集合,但我不知道名爲query.who的變量的意思,可以解釋我函數的含義查詢在我的代碼中是什麼意思

exports.get = function get(username, callback) { 
    mongodb.open(function(err, db) { 
    if (err) { 
     return callback(err); 
    } 
    // 獲取 froggers 集合 
    db.collection('froggers', function(err, collection) { 
     if (err) { 
     mongodb.close(); 
     return callback(err); 

     // 查找 user 屬性爲 username 的文檔,如果 username 是 null 則匹配全部 
     var query = {}; 
     if (username) { 
     query.user = username; 
     } 
     collection.find(query).sort({time: -1}).toArray(function(err, docs) { 
     mongodb.close(); 
     if (err) { 
      callback(err, null); 
     } 
     // 封裝 froggers 爲 Frogger 對象 
     var froggers = []; //定義frogger數組對象 

     docs.forEach(function(doc, index) { 
      var frogger = new Frogger(doc.user, doc.post, doc.time); 
      froggers.push(frogger); 
     }); 
     callback(null, posts); 
     }); 
    }); 
    }); 
}; 
+0

'query'只是一個對象,可能會保持空白,或者獲取具有特定用戶名的屬性'user'以查找分配。然後這個對象被用作查詢數據庫的「過濾器」。如果它是空的,'collection.find(query)'將返回所有記錄,並且如果它有一個用戶設置,它將只返回'user'值與給定記錄匹配的記錄。 – CBroe

回答

0

查詢變量是一個包含字段用戶的對象。 該字段獲取用戶名變量的值。它是爲了適合collection.query函數而構建的。 現在這個查詢將取其中user = username. 所以如果username='albert'查詢將STRAT的所有集合:

collection.find({user:'alebrt'}) 

...........

+0

爲什麼查詢變量使用空括號進行初始化?大括號的含義是什麼? – user1123849

+1

{}是散列/對象在javascript中的表示形式。你應該首先學習語言的基礎知識...... – Simon