использование $ 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" }
  }}
);

Ответы на вопрос(3)

Ваш ответ на вопрос