我正在尝试使用聚合框架将许多字符串组合在一起以识别唯一的字符串。我还必须保留有关其余字段的一些信息。这类似于我在 mysql 中使用 * 运算符和 group by 语句。
SELECT *
FROM my_table
GROUP BY field1
我试过使用聚合框架,它只是为了获得唯一的字段而工作得很好。
db.mycollection.aggregate({
$group : { _id : "$field1"}
})
如果我想要与此相关的其他领域怎么办。MySQL 只会给我出现在组中的第一个(我很好)。这就是我认为 $first 运算符所做的。
db.mycollection.aggregate({
$group : {
_id : "$field1",
another_field : {$first : "$field2"}
}})
这样,它按 field1 分组,但仍然让我返回附加到文档的其他字段。当我尝试这个时,我得到:
exception: aggregation result exceeds maximum document size (16MB)
我有一种感觉是因为它将整个聚合返回为一个文档。我可以将它作为另一个 json 数组返回吗?
提前致谢