当每个网站出现在许多馆藏中时,我该如何计数?

时间:2019-05-01 09:05:59

标签: node.js reactjs mongoose

我有一个架构,每个网站的名称都出现在许多collection.I中,我试图计算每个网站的数量,但我没有。你能帮我吗?

const articleSchema = new mongoose.Schema(
  {
    _id: Number,
    link: String,
    title: String,
    sapo: String,
    publicDate: Date,
    sourceCode: String,
    text: String,
    thumbnail: String,
    tags: [String],
    category: { id: Number, name: String },
    website: { id: Number, name: String },
  }
);

1 个答案:

答案 0 :(得分:0)

您可以通过两种方式执行此操作。一个使用aggregate查询,第二个使用distinctcount查询。请参阅以下两种方法,并在mongodb shell中尝试它们:

方法1:

    db.articles.aggregate([{
        $group: {
            _id: "$website.name"
        }
    },{
        $group:{
            _id: null,
            count: {$sum: 1}
        }
    },{
        $project: {
            _id: 0
        }
    }])

方法2:

db.articles.distinct('website.name').length