2012-07-17 131 views
0

我使用MongoDB 2.0.6與node.js和mongodb本地模塊。我正在嘗試創建不同社交媒體項目的數據庫,並且目前有推文正確填充我的數據庫。我想添加一個函數,獲取最新的tweet ID(不是mongo ID,而是一個名爲'api_id'的字段),並返回它用於API調用。findOne沒有回調MongoDB和node.js

我跟着this great tutorial作爲我所擁有的基礎,但findOne函數似乎從未達到過它的回調。我嘗試使用本地Mongo ID序列化findOne,但沒有運氣。我要爲Mongo 1嘗試一種建議here的解決方法,但我認爲它不會起作用。任何幫助,將不勝感激。

// Find one by given criteria 
updateSocial.prototype.findByCrit = function(crit, callback) { 
    this.getCollection(function(error, social_collection) { 
     if(error) callback(error) 
     else { 
     social_collection.findOne({api_type: crit}, function(error, result) { 
      if(error) 
       callback(error) 
      else { 
       callback(null, result); 
      } 
     }); 
     } 
    }); 
}; 
+0

代碼看起來很好,所以問題可能在別處。你穿過它嗎? – JohnnyHK 2012-07-17 14:50:48

+0

你有多少數據?有'api_type'上的索引嗎?你可能只是在等待數據庫。 – 2012-07-17 18:29:52

回答

-3

似乎現在工作。問題一定是其他地方。

+2

這不是一個答案,也不會幫助其他人。 – mikemaccana 2013-10-10 14:16:03

+0

我同意@mikemaccana – Mohit 2015-08-04 09:44:58

0

根據MongoDB documentation的findOne方法沒有回調的第二個參數:

db.collection.findOne(query, projection) 

其中:

  • 查詢:可選。使用查詢運算符指定查詢選擇標準。
  • 投影:可選。指定要使用投影操作符返回的字段。省略此參數以返回匹配文檔中的所有字段。

所以,你不應該期待Mongo在執行查詢後調用你的第二個參數。