在go语言中使用Mongo-Go-Driver实现curd功能代码示例

2023-06-01 00:00:00 语言 Mongo

Mongo-Go-Driver是官方提供的Go语言驱动程序,用于连接和操作 MongoDB 数据库。

它提供了直接的 MongoDB API 访问,支持丰富的查询和操作功能。

虽然它不是严格意义上的 ORM 框架,但您可以使用 Mongo-Go-Driver 来进行MongoDB的数据操作,

并结合 Gin 框架进行开发。


下面正式进入curd步骤:

以下是使用 Mongo-Go-Driver 的增,删,改,查 代码

package main
import (
    "context"
    "fmt"
    "go.mongodb.org/mongo-driver/mongo"
    "go.mongodb.org/mongo-driver/mongo/options"
    "go.mongodb.org/mongo-driver/bson"
    "log"
)
type User struct {
    Name string `bson:"name"`
    Age  int    `bson:"age"`
}
func main() {
    // 建立连接
    client, err := mongo.Connect(context.Background(), options.Client().ApplyURI("mongodb://localhost:27017"))
    if err != nil {
        log.Fatal(err)
    }
    defer func() {
        if err := client.Disconnect(context.Background()); err != nil {
            log.Fatal(err)
        }
    }()
    // 选择数据库和集合
    collection := client.Database("mydb").Collection("mycollection")
    // 插入文档
    user := User{
        Name: "John",
        Age:  30,
    }
    _, err = collection.InsertOne(context.Background(), user)
    if err != nil {
        log.Fatal(err)
    }
    // 查询文档
    filter := bson.M{"name": "John"}
    var result User
    err = collection.FindOne(context.Background(), filter).Decode(&result)
    if err != nil {
        log.Fatal(err)
    }
    fmt.Println(result)
    // 更新文档
    update := bson.M{"$set": bson.M{"age": 35}}
    _, err = collection.UpdateOne(context.Background(), filter, update)
    if err != nil {
        log.Fatal(err)
    }
    // 删除文档
    _, err = collection.DeleteOne(context.Background(), filter)
    if err != nil {
        log.Fatal(err)
    }
}


相关文章