简体   繁体   English

如何计算mongodb中的记录

[英]how to count records in mongodb

I am new in mongodb. 我是mongodb的新手。 i have a simple email Schema which implemented like below : 我有一个简单的电子邮件架构,实现如下:

const emailSchema = new Schema({
  from:{
    type: String
  },
  to: {
    type: String
  },
  subject: {
    type: String
  },
  content: {
    type: String
  },
  provider:{
    type: String
  },
  success:{
    type: Boolean
  }

now i want to query all email records and seprate them in two array. 现在我想查询所有电子邮件记录并将它们分成两个数组。 one for provider=x and provider = y . 一个用于provider=xprovider = y then count each one's success field. 然后计算每个人的success领域。 how can i write such query ? 我该如何写这样的查询?

If you only want to count success: true for any provider 如果您只想计算成功:对任何提供者都适用

emailSchema.aggregate([{
  $match: {
    { 'success': true }
  },
  $group: {
    _id: {
      provider: '$provider'
    }, //group by provider 
    count: {
      $sum: 1
    }
  } //sum of success fields
]);

If you only want to count success field exists or not it may be true or false for any provider 如果您只想计算成功字段是否存在,则对于任何提供程序而言,该字段可能为true或false

emailSchema.aggregate([{
  $match: {
    {'success': { $exists: true }}
  },
  $group: {
    _id: {
      provider: '$provider'
    }, //group by provider 
    count: {
      $sum: 1
    }
  } //sum of success fields
]);

Use aggregate query for group and count 使用汇总查询进行分组和计数

emailSchema.aggregate([{
      $group: {
        _id: {
          provider: '$provider'
        }, //group by provider 
        count: {
          $sum: '$success'
        }
      } //sum of success fields
    ])

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM