golang操作mongodb
时间:2021-07-01 10:21:17
帮助过:21人阅读
"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
golang操作mongodb
标签:ndt app 执行 数据库 art class mongo str 脚本