【发布时间】:2016-04-16 22:22:36
【问题描述】:
我在 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"
}
.......
我希望获得在两个不同类别中出版书籍的作者数量。
以上面的例子: 玛丽有《孩子》的书,托尼有《孩子》的书,乔有《孩子》和《喜剧》的书。因此,我希望获得第一名,因为乔是唯一一个出版不同类别书籍的人。
我在 mongoDB 中写了以下代码,但不知道如何填充匹配部分:
db.collection.aggregate([
{ $match:{ }},
{ $project:{ _id:0, author:1 }},
{ $unwind:"$author" },
{ $group:{ _id:null, count:{ $sum: 1} }}
])
【问题讨论】:
标签: mongodb