findOne没有MongoDB和node.js的回调

时间:2012-07-17 14:08:18

标签: node.js mongodb

我正在将MongoDB 2.0.6与node.js和mongodb-native模块一起使用。我正在尝试创建一个包含不同社交媒体项目的数据库,目前正在使用推文正确填充我的数据库。我想添加一个获取最新推文ID的函数(不是mongo ID,而是一个名为'api_id'的字段)并返回它以便在API调用中使用。

我跟着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);
            }
        });
      }
    });
};

2 个答案:

答案 0 :(得分:0)

根据MongoDB documentation,findOne方法没有回调作为第二个参数:

db.collection.findOne(query, projection)

其中:

  • 查询:可选。使用查询运算符指定查询选择条件。
  • 投影:可选。指定使用投影运算符返回的字段。省略此参数以返回匹配文档中的所有字段。

所以,你不应该期望Mongo在执行查询后调用你的第二个参数。

答案 1 :(得分:-3)

似乎现在正在工作。问题肯定是在其他地方。