【问题标题】:Mongodb count issue, object objectMongodb计数问题,对象对象
【发布时间】:2014-05-27 03:51:41
【问题描述】:

我有一个 node.js 服务器,它调用一个需要查询 Mongodb 数据库的函数。

exports.zonetotal = function(db) {
  return function(req, res) {
    var inZone1 = 2;
    inZone1 = db.collection('driveby').count();
var items = [
    {"zone":"1" , "number":inZone1}
 ]; 
    {
      res.json(items);
    }
  }
};

当我尝试使用此功能并在网页上的表格中显示结果时,我只得到一个显示对象对象的结果。如果我只是说 var inZone1 = 2;然后显示数字,所以我认为这不是我尝试发送数据的方式的问题,我认为这是查询的问题。任何想法,谢谢。

【问题讨论】:

  • 您的意思是当您控制台记录响应时,对吗?但是你认为实际响应是什么,或者如果你在解析的对象上使用 JSON.stringify 呢?

标签: node.js mongodb express pug


【解决方案1】:

collection.count() 是异步的。您需要提供一个执行渲染的回调。见this。只需像这样在回调中移动您的渲染代码:

db.collection('driveby').count({zone:1}, function(err, count) {
  console.log(count + "records in db");
  console.log("There are " + count + " records in db");
  var items = [ {"zone":"1" , "number":count} ]; 
  res.json(items);
});

【讨论】:

    【解决方案2】:

    Node MongoDB 驱动程序是异步的,因此您需要将回调传递给“count”并在回调中执行 res.json:

    http://mongodb.github.io/node-mongodb-native/api-generated/collection.html#count

    【讨论】:

    • 如何在回调中传递回调?
    猜你喜欢
    • 2015-05-14
    • 1970-01-01
    • 2020-05-11
    • 2020-10-01
    • 1970-01-01
    • 2012-09-27
    • 1970-01-01
    • 2014-07-06
    • 2010-12-27
    相关资源
    最近更新 更多