// warroom project main.go package core import ( "context" "testing" "github.com/go-redis/redis/v8" "go.mongodb.org/mongo-driver/bson/primitive" "repositories.action2quare.com/ayo/gocommon/logger" ) func TestReJSON(t *testing.T) { rc := redis.NewClient(&redis.Options{Addr: "192.168.8.94:6380"}) rh := NewRedisonHandler(context.Background(), rc) testDoc := map[string]any{ "members": map[string]any{ "mid2": map[string]any{ "key": "val", "exp": 20202020, }, "mid1": map[string]any{ "key": "val", "exp": 10101010, }, }, } gd := groupDoc{ id: primitive.NewObjectID(), } midin := primitive.NewObjectID() tid := gd.tid(midin) midout := gd.mid(tid) logger.Println(midin, tid, midout) logger.Println(rh.JSONSet("jsontest", "$", testDoc)) logger.Println(rh.JSONGet("jsontest", "$")) logger.Println(rh.JSONResp("jsontest", "$.members")) logger.Println(rh.JSONGetString("jsontest", "$.members..key")) logger.Println(rh.JSONGetInt64("jsontest", "$.members..exp")) logger.Println(rh.JSONObjKeys("jsontest", "$.members")) err := rh.JSONMSet("jsontest", map[string]any{ "$.members.mid1.key": "newval", "$.members.mid2.key": "newval", }) logger.Println(err) logger.Println(rh.JSONGet("jsontest", "$")) logger.Println(rh.JSONMDel("jsontest", []string{"$.members.mid1", "$.members.mid2"})) logger.Println(rh.JSONGet("jsontest", "$")) logger.Println(rh.JSONObjLen("jsontest", "$.members")) }