За Mongo 3.x можете да използвате $split
и $arrayElemAt
:
db.test.aggregate([
{ $project : {
domain: {$arrayElemAt: [ { $split: ["$url", "/"] }, 2 ] }
}},
{ $group : {
_id: "$domain" , count : { "$sum" : 1 }
}},
{ $sort:{
_id:1
}}
]);
И резултатът ще бъде:
/* 1 */
{
"_id" : "mydomain.prep.com",
"count" : 2.0
}
/* 2 */
{
"_id" : "newdomain.com",
"count" : 2.0
}
/* 3 */
{
"_id" : "olddomain.reference.org",
"count" : 2.0
}