我有以下記錄: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? –