如何在mongoDB中聚合?

时间:2016-04-13 21:41:54

标签: mongodb aggregation-framework

我在json有一个书单如下:

{
    "_id" : ObjectId("1"),
    "author" : [
        "Mary",
        "Tony"
    ],
    "booktitle" : "Book1",
    "Category" : "Children"
}
{
        "_id" : ObjectId("2"),
        "author" : [
            "Joe",
            "Tony"
        ],
        "booktitle" : "Book2",
        "Category" : "Children"
}
{
            "_id" : ObjectId("3"),
            "author" : [
                "Joe",
            ],
            "booktitle" : "Book3",
            "Category" : "comedy"
}
.......

我希望得到前10名写作书的作者属于“儿童”。因为有些书不仅仅是由一位作者撰写的。我不知道怎么做。

鉴于上面的例子,book1和book2属于“Children”,Tony写了2本书,Mary和Joe写了1本书。因此,排名前三的作家是托尼,玛丽,乔。

我写下来:

db.table.find({Category: "Children"}).aggregate({$group:{_id: '', count : {$sum : 1}}}, {$sort: {count : -1}})

但不知道如何编写组部分。感谢。

0 个答案:

没有答案