javascript - Node.js:查询聚合不起作用(mongodb)

标签 javascript node.js mongodb aggregation-framework

所以我对 Node.js 有点陌生。我不明白为什么聚合查询对我不起作用。我在 Mongo Shell 中尝试了相同的查询,效果非常好。 代码如下:

db.collection("companies").aggregate({$match:
{$or:
    [{ $and:
        [{ left: {$gt: 2}}, {left: {$lt: 11}}]},
    { $and:
        [{ right: {$gt: 2}}, {right: {$lt: 11}}]}]}},
{ $group:
    {_id:null, 
        Sum:{$sum: "$earn"}}}, 

function(err, data){

    if (err) throw err;

    console.log(data[0]);
    console.log(data.value);
    console.log(data.Sum);
});

控制台输出:

undefined
undefined
undefined

最佳答案

聚合参数需要是一个数组,因为聚合适用于管道概念,其中最后一个管道的输出将成为当前管道的输入。

db.collection("companies").aggregate([
{$match:
  {$or:
      [{ $and:
          [{ left: {$gt: 2}}, {left: {$lt: 11}}]},
      { $and:
          [{ right: {$gt: 2}}, {right: {$lt: 11}}]}]
}},
{ $group:
    {_id:null, 
        Sum:{$sum: "$earn"}}}], 

function(err, data){

    if (err) throw err;

    console.log(data[0]);
    console.log(data.value);
    console.log(data.Sum);
});

关于javascript - Node.js:查询聚合不起作用(mongodb),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46380770/

相关文章:

javascript - Webworker Canvas 性能很糟糕

javascript - 仅显示月份和年份的 Django DateField 日历?

javascript - Node js 服务器 : I want to respond to a browser request with both HTML and JSON in the same response, 这可能吗?

javascript - Sequelize .set 错误,.set 不是函数

Mongodb 按版本 x.y.z 排序

MongoDB 聚合框架 日期现在

javascript - S3 Nodejs 类型错误 : Cannot read property 'path' of undefined

file - 具有文件查询功能的 NodeJS 库

node.js - Mean.IO 的 NPM 安装在更新 Bower 依赖项时卡住

javascript - 如何使用 JavaScript 在 WebKit 中获取 accessKeyLabel?