MongoDB简单CRUD操作(含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() {
client, err := mongo.NewClient(options.Client().ApplyURI("mongodb://localhost:27017"))
if err != nil {
log.Fatal(err)
}
ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second)
defer cancel()
err = client.Connect(ctx)
if err != nil {
log.Fatal(err)
}
defer client.Disconnect(ctx)
collection := client.Database("testdb").Collection("testcollection")
// 创建文档
insertResult, err := collection.InsertOne(ctx, bson.D{{"name", "Alice"}, {"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", "Alice"}}).Decode(&result)
if err != nil {
log.Fatal(err)
}
fmt.Printf("文档查询结果: %#v\n", result)
// 更新文档
updateResult, err := collection.UpdateOne(ctx, bson.D{{"name", "Alice"}}, 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", "Alice"}})
if err != nil {
log.Fatal(err)
}
fmt.Printf("文档删除成功,删除行数: %v\n", deleteResult.DeletedCount)
}
这段代码展示了如何在Go语言中使用MongoDB Go Driver进行简单的CRUD操作。代码首先建立与MongoDB的连接,然后选择数据库和集合,接着进行创建(插入)、查询、更新和删除操作,并处理可能出现的错误。
评论已关闭