golang 语言连接MongoDB数据库增删改查

package main

 

//导入

import (

    "context"

    "fmt"

    "os"

    "time"

 

    "go.mongodb.org/mongo-driver/bson"

    "go.mongodb.org/mongo-driver/bson/primitive"

    "go.mongodb.org/mongo-driver/mongo"

    "go.mongodb.org/mongo-driver/mongo/options"

    "go.mongodb.org/mongo-driver/mongo/readconcern"

    "go.mongodb.org/mongo-driver/mongo/readpref"

    "go.mongodb.org/mongo-driver/mongo/writeconcern"

)

 

type Howie struct {

    //struct里面获取ObjectID

    Id         primitive.ObjectID `bson:"_id"`

    Createtime time.Time          `bson:"_createtime"`

    Creator    primitive.ObjectID `bson:"_creator"`

    Delete     bool               `bson:"_delete"`

}

 

func main() {

    TestMongo("mongodb://192.168.2.31:27017")

}

 

func TestMongo(url string) {

    var (

        err        error

        client     *mongo.Client

        collection *mongo.Collection

        // insertOneRes    *mongo.InsertOneResult

        // insertManyRes   *mongo.InsertManyResult

        // delRes          *mongo.DeleteResult

        // updateRes       *mongo.UpdateResult

        cursor *mongo.Cursor

        // howieArray      = GetHowieArray()

        howie           Howie

        howieArrayEmpty []Howie

        // size            int64

    )

    want, err := readpref.New(readpref.SecondaryMode) //表示只使用辅助节点

    if err != nil {

        checkErr(err)

    }

    wc := writeconcern.New(writeconcern.WMajority())

    readconcern.Majority()

    //链接mongo服务

    opt := options.Client().ApplyURI(url)

    opt.SetLocalThreshold(3 * time.Second)     //只使用与mongo操作耗时小于3秒的

    opt.SetMaxConnIdleTime(5 * time.Second)    //指定连接可以保持空闲的最大毫秒数

    opt.SetMaxPoolSize(200)                    //

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值