-1

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

我按照这个很棒的教程作为我所拥有的基础,但是 findOne 函数似乎永远不会触发它的回调。我也尝试将 findOne 与本机 Mongo ID 序列化一起使用,但没有运气。我将尝试这里为 Mongo 1 建议的解决方法,但我认为它不会起作用。任何帮助,将不胜感激。

// 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);
            }
        });
      }
    });
};
4

1 回答 1

0

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

db.collection.findOne(query, projection)

在哪里:

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

因此,您不应该期望 Mongo 在执行查询后调用您的第二个参数。

于 2017-03-01T11:39:36.897 回答