2012-07-17 132 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在执行查询后调用你的第二个参数。