MongoDB的Go语言操作示例总结
package main
import (
"context"
"fmt"
"log"
"time"
"go.mongodb.org/mongo-driver/bson"
"go.mongodb.org/mongo-driver/mongo"
"go.mongodb.org/mongo-driver/mongo/options"
)
func main() {
clientOptions := options.Client().ApplyURI("mongodb://localhost:27017")
client, err := mongo.Connect(context.Background(), clientOptions)
if err != nil {
log.Fatal(err)
}
defer client.Disconnect(context.Background())
collection := client.Database("testdb").Collection("testcollection")
ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second)
defer cancel()
// 插入文档
insertResult, err := collection.InsertOne(ctx, bson.D{{"name", "John Doe"}, {"age", 30}})
if err != nil {
log.Fatal(err)
}
fmt.Printf("文档插入成功,ID: %v\n", insertResult.InsertedID)
// 查询单个文档
var result bson.M
err = collection.FindOne(ctx, bson.D{{"name", "John Doe"}}).Decode(&result)
if err != nil {
log.Fatal(err)
}
fmt.Printf("查询结果: %v\n", result)
// 更新文档
updateResult, err := collection.UpdateOne(ctx, bson.D{{"name", "John Doe"}}, bson.D{{"$set", bson.D{{"age", 31}}}})
if err != nil {
log.Fatal(err)
}
fmt.Printf("文档更新成功,影响行数: %v\n", updateResult.MatchedCount)
// 删除文档
deleteResult, err := collection.DeleteOne(ctx, bson.D{{"name", "John Doe"}})
if err != nil {
log.Fatal(err)
}
fmt.Printf("文档删除成功,删除行数: %v\n", deleteResult.DeletedCount)
}
这段代码展示了如何使用MongoDB的Go语言驱动程序来连接到MongoDB实例,对一个集合进行插入、查询、更新和删除操作。代码简洁,注重于展示核心功能,并包含了错误处理。
评论已关闭