Reputation: 726
Given the following document:
[
{
"user": "A",
"feedback":"like"
},
{
"user": "B",
"feedback":"dislike"
},
{
"user": "C",
"feedback":"like"
},
{
"user": "D",
"feedback":"like"
},
{
"user": "E",
"feedback":"dislike"
},
]
I would like to get likes count and dislikes count.
In this case I would get {likesCount: 3, dislikesCount: 2}
.
How can I achieve this using Mongoose?
Upvotes: 1
Views: 37
Reputation: 8695
Query
"_id" : "hello"
would do the same)yourColl.aggregate(
[{"$group":
{"_id": null,
"likesCount":
{"$sum": {"$cond": [{"$eq": ["$feedback", "like"]}, 1, 0]}},
"dislikesCount":
{"$sum": {"$cond": [{"$eq": ["$feedback", "dislike"]}, 1, 0]}}}}])
Upvotes: 2