_id在Mongo $ group运算符中是什么

时间:2019-07-03 02:17:15

标签: mongodb

我在MongoDB中有一个简单的查询,如下:

{ $group : { _id : { color: "$color", transport: "$transport"} , count : { $sum : 1 } } }

这意味着在sql中查询为:

select color, transport,count(1) from t group by color, transport

我会问_id在上面的mongodb查询中是什么意思,如果我将_id更改为任何其他字符串,例如groupBy,则错误是:groupBy不是聚合运算符,它看起来必须是_id并且不能更改

1 个答案:

答案 0 :(得分:2)

mongodb中的聚合框架具有某些阶段和运算符,并且这些运算符具有只能在这些阶段内起作用的表达式。

此处_id是表示要与(group by color)分组的术语的表达式。诸如$sum$group阶段的累加器,用于count个与该$group术语相关的文档数量。