我在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}})
但不知道如何编写组部分。感谢。