【发布时间】:2017-02-18 14:08:52
【问题描述】:
我有一个看起来像这样的集合
var StoreSchema = new Schema({
name: String,
category: [String],
subCategory: [String],
});
示例数据如下所示:
[
{
'name':'Store1',
'category':['Cat1','Cat2','Cat3'],
'subCategory':['SubCat1','SubCat2']
},
{
'name':'Store2',
'category':['Cat2','Cat3','Cat4'],
'subCategory':['SubCat1','SubCat2']
},
{
'name':'Store3',
'category':['Cat4','Cat3','Cat1'],
'subCategory':['SubCat1','SubCat2']
}
]
我想获取按类别分组的商店,我还想检索商店名称和 ID。
我尝试使用此代码:
Store.aggregate([
{$unwind: '$category'},
{$group: { _id: '$category', count: {$sum: 1}}},
{$project: {'_id':1, category: '$_id',count: '$count'}}
]);
我得到的输出是这样的:
[
{
"count": 2,
"Category": "cat1"
},
{
"count": 2,
"category": "cat2"
}
]
是否也可以获取stores集合的所有字段。像这样的:
[
{
"stores": [{'name':'store1','id':'1'},{'name':'store3','id':'3'}],
"count": 2,
"Category": "cat1"
},
{
"stores": [{'name':'store1','id':'1'},{'name':'store2','id':'2'}],
"count": 2,
"category": "cat2"
}
]
【问题讨论】:
标签: mongoose