2017-08-14 4 views
-3

Je voudrais additionner le nombre de votes par champ spécifique en mongodb. Par exemple, renvoyer une somme du nombre d'ascendants que l'auteur John a obtenu.Comment pourrais-je additionner le nombre de votes par domaine spécifique en mongodb?

{ 
"_id": "fc0996a9726e4bf08c3d614afe05c7a8", 
"blog_id": "f8da5ae532aa44f6a54d86fd822f7d52", 
"author": "John", 
"content": "Hello", 
"upvotes": 3, 
} 
{ 
"_id": "dea0a9713a734717920b652eed268b99", 
"blog_id": "f8da5ae532aa44f6a54d86fd822f7d52", 
"author": "John", 
"content": "Hello", 
"upvotes": 2, 
} 
{ 
"_id": "3d286c4ce54046f4aac9ea627a48f04e", 
"blog_id": "f8da5ae532aa44f6a54d86fd822f7d52", 
"author": "John", 
"content": "Hello", 
"upvotes": 1, 
} 
{ 
"_id": "6782b555dd8c47f58dba28e60fda4a5f", 
"blog_id": "f8da5ae532aa44f6a54d86fd822f7d52", 
"author": "123", 
"content": "Bye", 
"upvotes": 2, 
} 

Comment puis-je résumer les upvotes et retourner une valeur 6, des upvotes que John a obtenu. Aussi, j'utilise python pour l'application web, avec flask.

Merci Vous

+0

utilisation globale avec le match de $ et l'opérateur somme de $. https://docs.mongodb.com/manual/reference/operator/aggregation/sum/ – Jackstine

Répondre

0

Vous pouvez utiliser $group du cadre global:

db.collection.aggregate([{ $group: { _id: { author:'$author'}, totalUpvotes: { $sum: "$upvotes" }}}])