J'ai une collection « tagsCount » qui ressemble à ce que:sommes groupe d'un attribut par les valeurs d'un autre tableau d'attributs
{
"_id" : ObjectId("59e3a46a48507851d411ad78"),
"tags" : [ "Marketing" ],
"cpt" : 14354
},
{
"_id" : ObjectId("59e3a46a48507851d411ad79"),
"tags" : [
"chatbot",
"Content marketing",
"Intelligence artificielle",
"Marketing digital",
"Personnalisation"
],
"cpt" : 9037
}
Bien sûr, il y a beaucoup plus de lignes.
Je veux obtenir la somme de "cpt" groupée par les valeurs de "tags".
Je suis venu avec cette:
db.tagsCount.aggregate([
{ "$project": { "tags":1 }},
{ "$unwind": "$tags"},
{ "$group": {
"_id" : "$tags",
cpt : "$cpt" ,
"count": { "$sum": "$cpt" }
}}
])
Mais cela ne veut pas faire l'affaire, je la liste de toutes les différentes balises et le nombre ont une valeur 0.
Est-il possible de faire ce que je veux?
Votre 'étape de group' de $ n'est pas valide. Pensez également à nous montrer le résultat attendu. – styvane
Essayez '{ "$ group": { "_id": "$ tags", "count": { "somme $": "cpt $"} }}' – Veeram
@sstyvane Je modifié le 'group' de $ étape. – PPaFeu