98 lines
2.3 KiB
Go
98 lines
2.3 KiB
Go
package mdbc
|
|
|
|
import (
|
|
"context"
|
|
"fmt"
|
|
"testing"
|
|
"time"
|
|
|
|
"github.com/sirupsen/logrus"
|
|
"go.mongodb.org/mongo-driver/mongo/readpref"
|
|
|
|
"go.mongodb.org/mongo-driver/bson"
|
|
"go.mongodb.org/mongo-driver/mongo"
|
|
"go.mongodb.org/mongo-driver/mongo/options"
|
|
)
|
|
|
|
func TestIndexScope_GetList(t *testing.T) {
|
|
client, err := ConnInit(&Config{
|
|
URI: "mongodb://mdbc:mdbc@10.0.0.135:27117/admin",
|
|
MinPoolSize: 32,
|
|
ConnTimeout: 10,
|
|
ReadPreference: readpref.Nearest(),
|
|
RegistryBuilder: RegisterTimestampCodec(nil),
|
|
})
|
|
if err != nil {
|
|
logrus.Fatalf("get err: %+v", err)
|
|
}
|
|
InitDB(client.Database("mdbc"))
|
|
|
|
var list IndexList
|
|
var m = NewModel(&ModelSchedTask{})
|
|
err = m.Index().SetContext(context.Background()).GetIndexList(&list)
|
|
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
|
|
for _, card := range list {
|
|
logrus.Infof("%+v\n", card)
|
|
}
|
|
}
|
|
|
|
func TestIndexScope_DropAll(t *testing.T) {
|
|
var m = NewModel(&ModelSchedTask{})
|
|
err := m.Index().SetContext(context.Background()).DropAll()
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
}
|
|
|
|
func TestIndexScope_DropOne(t *testing.T) {
|
|
var m = NewModel(&ModelSchedTask{})
|
|
err := m.Index().SetContext(context.Background()).DropOne("expire_time_2")
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
}
|
|
|
|
func TestIndexScope_AddIndexModel(t *testing.T) {
|
|
var err error
|
|
|
|
var m = NewModel(&ModelSchedTask{})
|
|
// 创建多个索引
|
|
_, err = m.Index().SetContext(context.Background()).AddIndexModels(mongo.IndexModel{
|
|
Keys: bson.D{{Key: "expire_time", Value: 2}}, // 设置索引列
|
|
Options: options.Index().SetExpireAfterSeconds(0), // 设置过期时间
|
|
}).AddIndexModels(mongo.IndexModel{
|
|
Keys: bson.D{{Key: "created_at", Value: 1}}, // 设置索引列
|
|
}).CreateMany()
|
|
|
|
// 创建单个索引
|
|
_, err = m.Index().SetContext(context.Background()).AddIndexModels(mongo.IndexModel{
|
|
Keys: bson.D{{Key: "expire_time", Value: 2}}, // 设置索引列
|
|
Options: options.Index().SetExpireAfterSeconds(0), // 设置过期时间
|
|
}).CreateOne()
|
|
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
}
|
|
|
|
func TestIndexScope_SetListIndexesOption(t *testing.T) {
|
|
var list IndexList
|
|
s := int32(2)
|
|
mt := 10 * time.Second
|
|
var m = NewModel(&ModelSchedTask{})
|
|
//设定ListIndexesOptions
|
|
err := m.Index().SetListIndexesOption(options.ListIndexesOptions{
|
|
BatchSize: &s,
|
|
MaxTime: &mt,
|
|
}).GetIndexList(&list)
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
|
|
fmt.Printf("%+v\n", list)
|
|
}
|