SoFunction
Updated on 2025-03-05

Example of Go operation mongodb database method

Add mongodb driver

Used to go get to add Go drivers as dependencies.

go get /mongo-driver/mongo

How to use

Create a file

package main
import (
    "context"
    "fmt"
    "/mongo-driver/bson"
    "/mongo-driver/bson/primitive"
    "/mongo-driver/mongo"
    "/mongo-driver/mongo/options"
    "/mongo-driver/mongo/readpref"
    "log"
    "time"
)
// MongoDB connection poolvar MongoDBClient *
// pool connection pool modefunc ConnectToDBPool() {
    user := "admin"
    password := "12345678"
    host := "127.0.0.1"
    port := "27017"
    dbName := "demo"
    timeOut := 2
    maxNum := 50
    uri := ("mongodb://%s:%s@%s:%s/%s?w=majority", user, password, host, port, dbName)
    // Set the connection timeout time    ctx, cancel := ((), (timeOut))
    defer cancel()
    //Configuration related to uri connections transmitted through incoming    o := ().ApplyURI(uri)
    // Set the maximum number of connections - the default is 100, if not set, the maximum max 64    (uint64(maxNum))
    // Start a link    client, err := (ctx, o)
    if err != nil {
        ("ConnectToDB", err)
        return
    }
    // Determine whether the service is available    if err = ((), ()); err != nil {
        ("ConnectToDB", err)
        return
    }
    // Return to client    MongoDBClient = (dbName)
}
func ConnectToDB() {
    clientOptions := ().ApplyURI("mongodb://admin:12345678@localhost:27017")
    var ctx = ()
    // Connect to MongoDB
    client, err := (ctx, clientOptions)
    if err != nil {
        (err)
    }
    // Check the connection
    err = (ctx, nil)
    if err != nil {
        (err)
    }
    ("Connected to MongoDB!")
    // Return to client    MongoDBClient = ("demo")
    //defer (ctx)
}
// Insert a single piece of datafunc insertOne() {
    ash := Member{"13212345678", "123456", []string{"abc1", "efg1", "hij1"}}
    insertResult, err := ("test1").InsertOne((), ash)
    if err != nil {
        (err)
    }
    println("Inserted a single document: ", )
}
// Insert multiple pieces of datafunc insert() {
    var ash []interface{}
    ash = append(ash, Member{"13222222222", "123456", []string{"aaa", "bbb", "ccc"}})
    ash = append(ash, Member{"13333333333", "123456", []string{"aaa1", "bbb1", "ccc1"}})
    (ash)
    insertResult, err := ("test1").InsertMany((), ash)
    if err != nil {
        (err)
    }
    println("Inserted Multiple document: ", )
}
// Inquiry singlefunc findOne() {
    var result 
    err := ("test1").FindOne((), {{"info", "aaa1"}}).Decode(&result)
    if err != nil {
        if err ==  {
            //This error means your query did not match any documents.
            return
        }
        panic(err)
    }
    (result)
}
// Query multiple datafunc find() {
    findOptions := ()
    (10)
    cur, err := ("test1").Find((), {{"phone", "13333333333"}}, findOptions)
    if err != nil {
        (err)
    }
    var results []*Member
    for (()) {
        // create a value into which the single document can be decoded
        var elem Member
        err := (&elem)
        if err != nil {
            (err)
        }
        results = append(results, &elem)
    }
    if err := (); err != nil {
        (err)
    }
    //(results)
    for _, v := range results {
        ()
        ()
        ()
    }
}
func updateOne() {
    //If the filtered document does not exist, insert a new document    opts := ().SetUpsert(true)
    id, _ := ("633b02b6e082e5046001d0b9")
    filter := {{"_id", id}}
    update := {{"$set", {{"phone", "1444444444444"}}}}
    result, err := ("test1").UpdateOne((), filter, update, opts)
    //result, err := ("test1").UpdateOne((), filter, update)
    if err != nil {
        panic(err)
    }
    (result)
}
func update() {
    filter := {{"name", "123456"}}
    update := {{"$set", {{"name", "Zhang San"}}}}
    result, err := ("test1").UpdateMany((), filter, update)
    if err != nil {
        panic(err)
    }
    (result)
}
// Replace the documentfunc replaceOne() {
    filter := {{"phone", "13222222222"}}
    replacement := {{"phone", "16666666666"}}
    result, err := ("test1").ReplaceOne((), filter, replacement)
    if err != nil {
        panic(err)
    }
    (result)
}
// Delete a single filefunc deleteOne() {
    filter := {{"phone", "16666666666"}}
    result, err := ("test1").DeleteOne((), filter)
    if err != nil {
        panic(err)
    }
    (result)
}
// Delete multiplefunc delete() {
    //filter := {{"runtime", {{"$gt", 800}}}}
    filter := {{"phone", "16666666666"}}
    results, err := ("test1").DeleteMany((), filter)
    if err != nil {
        panic(err)
    }
    (results)
}
type Member struct {
    Phone string
    Name  string
    Info  []string
}
func main() {
    //Connect the database    ConnectToDB()
    //Connection pool to connect to database    //ConnectToDBPool()
    //Insert a single piece of data    //insertOne()
    //Insert multiple pieces of data    //insert()
    //Find a single piece of data    //findOne()
    //Find multiple data    find()
    //Modify a single piece of data    //updateOne()
    //Modify multiple data    //update()
    //Replace the document    //replaceOne()
    // Delete multiple    //deleteOne()
    // Delete multiple    //delete()
}

links /docs/...

The above is the detailed content of the Go operation mongodb database method example. For more information about Go operation mongodb, please follow my other related articles!