У меня есть записи в базе данных, содержащей URL-адреса. Например, https://www.youtube.com/watch?v=blablabla
.Записи счетчика в MongoDB по регулярному выражению
Я хочу подсчитывать URL-адреса для каждого сайта. Например
[{
site: 'youtube.com',
count: 25
},
{
site: 'facebook.com',
count: 135
}]
Я использовал этот трубопровод агрегации:
db.getCollection('records').aggregate([
{'$match': {'url': /.*youtube\.com.*/}}, // youtube for example
{'$group': {'_id': {'site': '$url', 'count': {'$sum': 1}}}},
{'$project': {'_id': false, 'site': '$_id.site', 'count': '$_id.count'}}
]);
, который выводит:
[{
"site" : "youtube.com/blablabla1",
"count" : 1.0
},
{
"site" : "youtube.com",
"count" : 1.0
},
{
"site" : "www.youtube.com/blablabla2",
"count" : 1.0
},
{
"site" : "www.youtube.com/blablabla1",
"count" : 1.0
}]
Это не будет даже рассчитывать одинаковые строки корректно.
Что не так с моим подходом?
Airece вы пробовали мой ответ? –
@MaciejKozieja Я пытаюсь понять это :) –
Если это сработало для вас, пожалуйста, примите ответ;) –