использование $ regex в структуре агрегации mongodb в $ group
Рассмотрим следующий пример:
db.article.aggregate(
{ $group : {
_id : "$author",
docsPerAuthor : { $sum : 1 },
viewsPerAuthor : { $sum : "$pageViews" }
}}
);
Это группирует по полю автора и вычисляет два поля.
У меня есть значения для $ author = FirstName_LastName. Теперь вместо группировки по $ author, я хочу группировать по всем авторам с одинаковым LastName.
Я попытался $ regex сгруппировать по всем подходящим строкам после '_'
$author.match(/_[a-zA-Z0-9]+$/)
db.article.aggregate(
{ $group : {
_id : "$author".match(/_[a-zA-Z0-9]+$/),
docsPerAuthor : { $sum : 1 },
viewsPerAuthor : { $sum : "$pageViews" }
}}
);
also tried the following:
db.article.aggregate(
{ $group : {
_id : {$author: {$regex: /_[a-zA-Z0-9]+$/}},
docsPerAuthor : { $sum : 1 },
viewsPerAuthor : { $sum : "$pageViews" }
}}
);