How can you count two conditions in MongoDB?

In MongoDB, you can use the $match and $group operators to count with two conditions. Here is an example:

Assume we have a collection called users that stores user data, where each user document contains a field age representing their age and a field gender representing their gender.

To count the number of female users aged between 20 and 30, you can use the following aggregation pipeline operation:

db.users.aggregate([
  {
    $match: {
      age: { $gte: 20, $lte: 30 },
      gender: "female"
    }
  },
  {
    $group: {
      _id: null,
      count: { $sum: 1 }
    }
  }
])

In the example above, first the $match operator is used to filter out user documents that meet the criteria (age between 20 and 30 and female gender), then the $group operator is used to group the matching documents into a new document and calculate the number of documents that meet the criteria.

The results will be as follows:

{ "_id" : null, "count" : 3 }

If _id is null, it means all matching documents are grouped into the same group, and count represents the number of documents that meet the conditions.

广告
Closing in 10 seconds
bannerAds