mongodb中aggregate的使用
0.准备以下数据
db.user.insertOne(
{ name: "小明", hobby: "篮球" }
)
db.user.insertOne(
{ name: "小红", hobby: "篮球" }
)
db.user.insertOne(
{ name: "旺财", hobby: "篮球" }
)
db.user.insertOne(
{ name: "旺财", hobby: "足球" }
)
db.user.insertOne(
{ name: "旺财", hobby: "乒乓球" }
)
db.user.insertOne(
{ name: "小明", hobby: "乒乓球" }
)
1.用名字分组,查出数量大于1的
db.user.aggregate([
{ $group: { _id: "$name", total: { $sum: 1 } } },
{'$match': {
'total': {'$gt': 1}
}}
])
2.查询出爱好数量大于一个的
db.user.aggregate(
[
{
$group:
{
_id: "$name",
hobbySet: { $addToSet: "$hobby" }
}
},
{'$match': {
'hobbySet.1': {$exists:1}
}}
]
)