użycie $ regex w strukturze agregacji mongodb w grupie $
Rozważ następujący przykład:
db.article.aggregate(
{ $group : {
_id : "$author",
docsPerAuthor : { $sum : 1 },
viewsPerAuthor : { $sum : "$pageViews" }
}}
);
Grupuje według pola autora i oblicza dwa pola.
Mam wartości dla $ author = FirstName_LastName. Teraz zamiast grupowania według autora $ chcę grupować wszystkich autorów, którzy mają to samo nazwisko.
Próbowałem zgrupować $ regex według wszystkich pasujących ciągów za znakiem „_”
$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" }
}}
);