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) //