golang操作mongodb


 

package main

import (
    "fmt"
    "go.mongodb.org/mongo-driver/mongo"
    "context"
    "go.mongodb.org/mongo-driver/mongo/options"
    "go.mongodb.org/mongo-driver/bson/primitive"
    "time"
)


// 任務的執行時間點
type TimePoint struct {
    StartTime int64    `bson:"startTime"`
    EndTime int64    `bson:"endTime"`
}


// 一條日志
type LogRecord struct {
    JobName string    `bson:"jobName"` // 任務名
    Command string `bson:"command"` // shell命令
    Err string `bson:"err"` // 腳本錯誤
    Content string `bson:"content"`// 腳本輸出
    TimePoint TimePoint `bson:"timePoint"`// 執行時間點
}

func main(){
    var (
        client *mongo.Client
        err error
        result *mongo.InsertOneResult
    )

    // 建立mongodb連接
    clientOptions := options.Client().ApplyURI("mongodb://ichunt:huntmon6699@192.168.1.237:27017/ichunt?authMechanism=SCRAM-SHA-1")
    if client, err = mongo.Connect(
        context.TODO(),clientOptions); err != nil {
        return
    }

    // 2, 選擇數據庫my_db
    database := client.Database("ichunt")

    // 3, 選擇表my_collection
    collection := database.Collection("cron_log")
    // 4, 插入記錄(bson)
    record := &LogRecord{
        JobName: "job10",
        Command: "echo hello",
        Err: "",
        Content: "hello",
        TimePoint: TimePoint{StartTime: time.Now().Unix(), EndTime: time.Now().Unix() + 10},
    }

    if result, err = collection.InsertOne(context.TODO(), record); err != nil {
        fmt.Println(err)
        return
    }

    fmt.Println(result)

    //// _id: 默認生成一個全局唯一ID, ObjectID:12字節的二進制
    docId := result.InsertedID.(primitive.ObjectID)
    fmt.Println("自增ID:", docId.Hex())
}

 

返回:

&{ObjectID("5e158ad09a14bfe14880829b")}
自增ID: 5e158ad09a14bfe14880829b

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM