golang mongodb分组查询
时间: 2023-10-22 10:10:43 浏览: 333
可以使用mgo库来在Golang中进行MongoDB的分组查询。下面是一个示例代码,演示了如何使用mgo库进行分组查询:
```go
package main
import (
"fmt"
"log"
"gopkg.in/mgo.v2"
"gopkg.in/mgo.v2/bson"
)
type Person struct {
Name string
Age int
Location string
}
func main() {
// 连接到MongoDB服务器
session, err := mgo.Dial("mongodb://localhost:27017")
if err != nil {
log.Fatal(err)
}
defer session.Close()
// 选择数据库和集合
db := session.DB("test")
collection := db.C("people")
// 创建管道操作
pipe := collection.Pipe([]bson.M{
bson.M{"$group": bson.M{
"_id": "$Location",
"count": bson.M{"$sum": 1},
}},
})
// 执行管道操作并获取结果
var results []bson.M
err = pipe.All(&results)
if err != nil {
log.Fatal(err)
}
// 打印结果
for _, result := range results {
fmt.Println(result)
}
}
```
这段代码做了以下几个操作:
1. 使用mgo库连接到MongoDB服务器。
2. 选择数据库和集合。
3. 创建管道操作,其中使用`$group`操作符对`Location`字段进行分组,并使用`$sum`操作符计算每组中的文档数。
4. 执行管道操作并获取结果。
5. 打印结果。
阅读全文