Golang 使用Mongodb之pipe

mgo的pipe函数实现了mongodb的聚合框架的查询。
举一个例子:

    result := make([]M, 0)
    // 构造查询条件
    query := make(M, 0)
    query["name"] = "happy"
    // 查询数据
    err := coll.Pipe([]M{
        {"$match": query},
        {"$project": M{"age": 1, "_id": 0}},
        {"$group": M{"_id": "$age", "count": M{"$count": "$age"}}},
        {"$sort": M{"count": -1}},
    }).All(&result)

上述代码实现的是查询姓名是“happy”的用户,然后只要他的age字段,然后根据age字段进行分组,分组的id是age,即相同age的人在一组,同时将人数累加,最后按照各个年龄段的人数进行降序排序,并将最终的结果放入到result中去。

你可能感兴趣的:(golang,mongodb)