我有以下记录:MongoDB:在聚合中使用用户定义函数的任何方式?
{ "_id" : ObjectId("55889370ba09474fd178d8b8"), "url" : "http://stackoverflow.com/questions/ask"}
{ "_id" : ObjectId("55889370ba09474fd178d8b4"), "url" : "http://stackoverflow.com"}
{ "_id" : ObjectId("55889370ba09474fd178d8b2"), "url" : "http://espn.com"}
我想要做的聚合,他们的根来获得每个站点的数量。基本上我希望前两个记录都属于同一组(它们具有相同的根)。
我创建了一个用户定义的函数来将url转换为其根。我的想法是使用用户定义的函数来首先投影记录(更改url字段),然后通过url进行分组。问题是显然用户定义的函数不能用于聚合。它们可用于投影中的where子句,但用where子句投影时不能用于聚合。
有什么办法可以聚合我需要的吗?
编辑:
也许使例子更能说明我要补充一点,如果我如想组由根网站,并指望他们,我会得到这样的:
{ "_id" : "http://stackoverflow.com", "count" : 2}
{ "_id" : "http://espn.com", "count" : 1}
你基本上是在寻找使用**'$ regex' **的**'$ project' **过滤器,但是目前聚合框架没有这个功能,这里有一个开放的JIRA [*] * SERVER-11947 **](https://jira.mongodb.org /浏览/ SERVER-11947)。 – chridam
那么目前没有办法做到这一点?没有其他的选择? –
这不适合http://stackoverflow.com/a/16252753/4573999? –