Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

You can use the $group stage in MongoDB aggregation to retrieve the count along with other attributes.

Here's an example:

db.collection.aggregate([
  {$match: {someField: "someValue"}}, // filter documents
  {$group: {
    _id: "$someField", // group by someField
    count: {$sum: 1}, // count documents in group
    otherAttribute: {$first: "$otherField"} // retrieve first value of otherField in group
  }}
])

In this example, the aggregation pipeline first filters documents that have a specific value in the someField field. Then it groups the remaining documents by the someField field using the $group stage.

Within the group, it calculates the count of documents in the group using the $sum operator and assigns it to the field count. It also retrieves the first value of the otherField field in the group using the $first operator and assigns it to the field otherAttribute.

The resulting output will be a list of groups, each containing the someField, count, and otherAttribute fields.