node.js - Mongodb Nodejs驱动聚合查询不返回数据

标签 node.js mongodb

我有 Mongodb 聚合查询,它在 RoboMongo shell 中运行良好,并给出了正确的结果。

Robo Mongo 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)
  }
})
    }
  }
}

任何帮助将不胜感激。

谢谢

最佳答案

你试过这个吗:

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)
  }
})
    }
  }
}

关于node.js - Mongodb Nodejs驱动聚合查询不返回数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45437740/

相关文章:

node.js - 将 mers 与backbone.js 结合使用

javascript - 无法将一个 Svelte 组件导入到另一个组件中

javascript - 如何在 Node 模块中访问具有相对路径的文件?

node.js - 我需要将旧对象与更新后的对象进行比较,无论是否调用 api

javascript - 通过id更新object中的MongoDB对象

javascript - Node.js 中带有数据库的 Express 路由器实例

javascript - 在 Node 中使用 Breeze.js EntityManager

python - 如何解决ajax代码中FLASK的404错误?

javascript - 有没有办法在没有 mongodb 的情况下创建像 _id 字符串一样的 mongodb?

mongodb - Mongoose:如何引用单独文件中的嵌套架构?