MongoDB的Node.js驱动程序聚合查询没有返回数据。

4

我有一个MongoDB聚合查询,可以在RoboMongo shell中正常工作并得到正确的结果。

RoboMongo Shell查询:

db.getCollection('application-filters').aggregate(
{

      $match: { 


          "StatusName" : {$in:["Rejected","Expired"]}


}},
{
$group:{
    _id: "$StatusName", COUNT : { "$sum":1} 
}},
{
$project: {
    StatusName:1,
    Count : "$COUNT"
}
},
{
    $sort:{
        Count:-1
    }
}
)

我已经复制并粘贴了相同的查询,并尝试使用nodejs mongodb 2.2驱动程序执行。但它没有返回任何结果。
以下是JavaScript代码:
module.exports = mPool => {
  return {
    getcountbyStatus (countstatusfilterParams) {
      console.log(countstatusfilterParams)
      return mPool.collection('application-filters').aggregate(
        {

          $match: {

            'StatusName': {$in: ['Rejected', 'Expired']}

          }},
        {
          $group: {
            _id: '$StatusName', COUNT: {'$sum': 1}
          }},
        {
          $project: {
            StatusName: 1,
            Count: '$COUNT'
          }
        },
        {
          $sort: {
            Count: -1
          }
        }
).toArray(function (err, data) {
  if (!err) {
    console.log(data)
  }
})
    }
  }
}

任何帮助都将不胜感激。
谢谢。

2
你解决了这个问题吗?我也遇到了同样的问题。 - Dor Lugasi-Gal
1个回答

2

你试过这个吗:

db.collection.aggregate([
      // do your query
]).toArray(function(err, docs) {
      // do something
}

所以在这种情况下,您的Mongodb聚合应该是:
module.exports = mPool => {
  return {
    getcountbyStatus (countstatusfilterParams) {
      console.log(countstatusfilterParams)
      return mPool.collection('application-filters').aggregate([
        {

          $match: {

            'StatusName': {$in: ['Rejected', 'Expired']}

          }},
        {
          $group: {
            _id: '$StatusName', COUNT: {$sum: 1}
          }},
        {
          $project: {
            StatusName: 1,
            Count: '$COUNT'
          }
        },
        {
          $sort: {
            Count: -1
          }
        }
]).toArray(function (err, data) {
  if (!err) {
    console.log(data)
  }
})
    }
  }
}

不行,它仍然无法工作。我仍然得到一个空数组。 - MAQ
我甚至尝试基于这个例子(http://mongodb.github.io/node-mongodb-native/2.2/tutorials/aggregation/)复制代码,但仍然不行。 - MAQ

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接