Golang协程案例:并行计算指定数的阶乘(未使用管道)
你可以使用 MongoDB 的 Go 语言驱动来连接 MongoDB 数据库,然后使用 `Collection.Find` 方法来执行查询。
这是一个示例代码:
```
package main
import (
"context"
"fmt"
"log"
"go.mongodb.org/mongo-driver/bson"
"go.mongodb.org/mongo-driver/mongo"
"go.mongodb.org/mongo-driver/mongo/options"
)
func main() {
// 创建 MongoDB 连接
client, err := mongo.NewClient(options.Client().ApplyURI("mongodb://localhost:27017"))
if err != nil {
log.Fatal(err)
}
err = client.Connect(context.TODO())
if err != nil {
log.Fatal(err)
}
// 获取要操作的集合
collection := client.Database("test").Collection("mycoll")
// 构建查询过滤器
filter := bson.M{"name": "foo"}
// 执行查询
cur, err := collection.Find(context.TODO(), filter)
if err != nil {
log.Fatal(err)
}
defer cur.Close(context.TODO())
// 遍历查询结果
for cur.Next(context.TODO()) {
var result bson.M
err := cur.Decode(&result)
if err != nil {
log.Fatal(err)
}
fmt.Println(result)
}
if err := cur.Err(); err != nil {
log.Fatal(err)
}
}
```
这段代码会连接到本地的 MongoDB 服务器,然后在 `test` 数据库的 `mycoll` 集合中查找所有名字为 `foo` 的文档。
需要注意,这个示例代码使用了 MongoDB Go 驱动的最新版本,使用了一些新的特性,如 `context.TODO` 和 `options.Client().ApplyURI`。 如果你使用的是旧版本的驱动,你可能需要使用不同的写法。