usando $ regex en el marco de agregación mongodb en $ group
Considere el siguiente ejemplo:
db.article.aggregate(
{ $group : {
_id : "$author",
docsPerAuthor : { $sum : 1 },
viewsPerAuthor : { $sum : "$pageViews" }
}}
);
Esto agrupa por el campo de autor y calcula dos campos.
Tengo valores para $ author = FirstName_LastName. Ahora, en lugar de agrupar por $ autor, quiero agrupar por todos los autores que comparten el mismo apellido.
Intenté $ regex para agrupar por todas las cadenas coincidentes después de '_'
$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" }
}}
);