javascript - Mongodb 聚合,在 $group _id 的表达式中使用变量的值

标签 javascript mongodb mongodb-query aggregation-framework mongodb-aggregation

我正在尝试按两个字段对文档进行分组,field1field2

myCollection.aggregate([{
  $group: {
    _id: {
      group1: "$field1",
      group2: "$field2"
    },
    count: {
      $sum: 1
    }
  }
}])

这很好地产生了预期的结果。

但是我想在循环中重新运行上面的代码,每次运行都会有不同的$field2,所以下面的代码失败了,我该怎么做?谢谢

const field3 = 'someValue';  // <<--- will change in every loop run ---

myCollection.aggregate([{
  $group: {
    _id: {
      group1: "$field1",
      group2: "$$field3"  //<<---------------- 
    },
    count: {
      $sum: 1
    }
  }
}])

最佳答案

以下应该适合你

var field3  = 'someValue';
myCollection.aggregate([{
  $group: {
    _id: {
      group1: "$field1",
      group2: "$" + field3,
    },
    count: {
      $sum: 1
    }
  }
}])

关于javascript - Mongodb 聚合,在 $group _id 的表达式中使用变量的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39735037/

相关文章:

javascript - IE 8/9 中 FormData 的回退

javascript - 视差代码在 JSFiddle 上运行但在我的网站上不起作用?

MongoDB,如何对文档进行分组

MongoDB elemMatch 和日期字段的结果不正确

javascript - 在 JavaScript 中将整个字符串转换为整数

javascript - jQuery - 插件方法调用

javascript - "JavaScript heap out of memory"传输大文件时

python - 使用 python meteor 查看数据的实时变化

node.js - Mongoose MongoDB 地理空间查询

node.js - MongoDb + Mongoose QueryStream - 以下文档更改