我开始学习mongoDb的性能改进。而且我有一个基于问题的聚合函数。 我创建了一个包含3个字段产品,颜色和年份的基本测试集合:
{
"product" : "car","colour" : "red","year" : "2019"
}
{
"product" : "car","colour" : "black","year" : "2018"
}
{
"product" : "bike","colour" : "blue","year" : "2014"
}
{
"product" : "train","year" : "2019"
}
{
"product" : "ship","year" : "2018"
}
{
"product" : "car","year" : "2016"
}
{
"product" : "car","year" : "2015"
}
{
"product" : "bike","colour" : "white","year" : "2016"
}
{
"product" : "ship","year" : "2015"
}
由于性能问题,我希望将facet用于单个聚合阶段:
db.getcollection('test').aggregate([
{
"$match":{
"colour":"red"
}
},{
"$facet": {
"cntOfReds":[
{"$group":{"_id": "$product","count": {"$sum": 1}}}
],"cntOfRedsIn2015":[
{"$match" :{"year": "2015"}},{"$group": {"_id": "$year","count": {"$sum": 1}}}
]
} }
])
我们如何使用mgo.v2在golang上实现相同的查询,并将结果设置为结构?