Use props in Find

This commit is contained in:
George Suntres
2026-04-18 20:19:32 -04:00
parent 4ddb396b76
commit 28195b7ce5
4 changed files with 18 additions and 12 deletions

6
go.mod
View File

@@ -3,9 +3,9 @@ module git.gsuntres.com/general/persist
go 1.25.0 go 1.25.0
require ( require (
git.gsuntres.com/general/commons v0.0.0-20260414224953-706ed2e6b0be git.gsuntres.com/general/commons v0.0.0-20260418004121-f52793a7641f
git.gsuntres.com/general/mongo v0.0.0-20260411181748-96254895839d git.gsuntres.com/general/mongo v0.0.0-20260418161100-6e91f8475035
git.gsuntres.com/general/structful v0.0.0-20260402004702-c83e44b04a9f git.gsuntres.com/general/structful v0.0.0-20260415004657-80b95298f342
github.com/go-viper/mapstructure/v2 v2.5.0 github.com/go-viper/mapstructure/v2 v2.5.0
github.com/testcontainers/testcontainers-go v0.41.0 github.com/testcontainers/testcontainers-go v0.41.0
github.com/testcontainers/testcontainers-go/modules/mongodb v0.41.0 github.com/testcontainers/testcontainers-go/modules/mongodb v0.41.0

8
go.sum
View File

@@ -6,14 +6,22 @@ git.gsuntres.com/general/commons v0.0.0-20260402010100-7e8cf14bb0a5 h1:iDZS0uQCo
git.gsuntres.com/general/commons v0.0.0-20260402010100-7e8cf14bb0a5/go.mod h1:ZawSPCI/Irjx7P83qJRcknKGuLLJ9c7hhP4OXgILnCY= git.gsuntres.com/general/commons v0.0.0-20260402010100-7e8cf14bb0a5/go.mod h1:ZawSPCI/Irjx7P83qJRcknKGuLLJ9c7hhP4OXgILnCY=
git.gsuntres.com/general/commons v0.0.0-20260414224953-706ed2e6b0be h1:dqRYGcUv3zcQPFS8KTUakkNbXaA1rC8P0Ll2ruNQceM= git.gsuntres.com/general/commons v0.0.0-20260414224953-706ed2e6b0be h1:dqRYGcUv3zcQPFS8KTUakkNbXaA1rC8P0Ll2ruNQceM=
git.gsuntres.com/general/commons v0.0.0-20260414224953-706ed2e6b0be/go.mod h1:ZawSPCI/Irjx7P83qJRcknKGuLLJ9c7hhP4OXgILnCY= git.gsuntres.com/general/commons v0.0.0-20260414224953-706ed2e6b0be/go.mod h1:ZawSPCI/Irjx7P83qJRcknKGuLLJ9c7hhP4OXgILnCY=
git.gsuntres.com/general/commons v0.0.0-20260418004121-f52793a7641f h1:lSjhzGQBpON/Cc+wXZXcMrpgm0RQ+waipLoC/abmX7I=
git.gsuntres.com/general/commons v0.0.0-20260418004121-f52793a7641f/go.mod h1:ZawSPCI/Irjx7P83qJRcknKGuLLJ9c7hhP4OXgILnCY=
git.gsuntres.com/general/mongo v0.0.0-20260329164619-eff6c4ecee15 h1:MD2fRF3oIQ7g/ToW+toCZH3/LL8bBsSz9PhEQyjOpk0= git.gsuntres.com/general/mongo v0.0.0-20260329164619-eff6c4ecee15 h1:MD2fRF3oIQ7g/ToW+toCZH3/LL8bBsSz9PhEQyjOpk0=
git.gsuntres.com/general/mongo v0.0.0-20260329164619-eff6c4ecee15/go.mod h1:AUb/BDG+dVPHpKmO5GsoZqIbDO8uqbxBabEqtqAB4tw= git.gsuntres.com/general/mongo v0.0.0-20260329164619-eff6c4ecee15/go.mod h1:AUb/BDG+dVPHpKmO5GsoZqIbDO8uqbxBabEqtqAB4tw=
git.gsuntres.com/general/mongo v0.0.0-20260411181748-96254895839d h1:eDbxpvgu0d751/SBIHlH1Km2er49Luau35/8ztCeBfk= git.gsuntres.com/general/mongo v0.0.0-20260411181748-96254895839d h1:eDbxpvgu0d751/SBIHlH1Km2er49Luau35/8ztCeBfk=
git.gsuntres.com/general/mongo v0.0.0-20260411181748-96254895839d/go.mod h1:AUb/BDG+dVPHpKmO5GsoZqIbDO8uqbxBabEqtqAB4tw= git.gsuntres.com/general/mongo v0.0.0-20260411181748-96254895839d/go.mod h1:AUb/BDG+dVPHpKmO5GsoZqIbDO8uqbxBabEqtqAB4tw=
git.gsuntres.com/general/mongo v0.0.0-20260418004600-7599b8b85689 h1:S9ryADnMXyTKWtUsjm1+Ah9of8R+4MmUrJgXEyrfAgg=
git.gsuntres.com/general/mongo v0.0.0-20260418004600-7599b8b85689/go.mod h1:C3f5b9tKohacdYd2Ugnyu9rMdvQZ5a+XrrKb+O/WA/M=
git.gsuntres.com/general/mongo v0.0.0-20260418161100-6e91f8475035 h1:8XxWEbdwRAQUAnHcKhWtqGYjCEWT2/NGU6XlwEZkhpU=
git.gsuntres.com/general/mongo v0.0.0-20260418161100-6e91f8475035/go.mod h1:C3f5b9tKohacdYd2Ugnyu9rMdvQZ5a+XrrKb+O/WA/M=
git.gsuntres.com/general/structful v0.0.0-20260330181942-47f7fdf9c083 h1:Z4zgJfWbcfnUiE1NjqMukUMYYlpN/10DUFpu4u789eQ= git.gsuntres.com/general/structful v0.0.0-20260330181942-47f7fdf9c083 h1:Z4zgJfWbcfnUiE1NjqMukUMYYlpN/10DUFpu4u789eQ=
git.gsuntres.com/general/structful v0.0.0-20260330181942-47f7fdf9c083/go.mod h1:yAdT20C09rz2VHA6ALurxc2KUaF03cSqvmRvDwv+KZk= git.gsuntres.com/general/structful v0.0.0-20260330181942-47f7fdf9c083/go.mod h1:yAdT20C09rz2VHA6ALurxc2KUaF03cSqvmRvDwv+KZk=
git.gsuntres.com/general/structful v0.0.0-20260402004702-c83e44b04a9f h1:bJpj6N9a2fBlcwMFoG+egkDsAmNbjfzdz3arzbdgzHs= git.gsuntres.com/general/structful v0.0.0-20260402004702-c83e44b04a9f h1:bJpj6N9a2fBlcwMFoG+egkDsAmNbjfzdz3arzbdgzHs=
git.gsuntres.com/general/structful v0.0.0-20260402004702-c83e44b04a9f/go.mod h1:fB5HAdx2wWMUkTitRz729EhpASpiHrgTYdIKQugVMjs= git.gsuntres.com/general/structful v0.0.0-20260402004702-c83e44b04a9f/go.mod h1:fB5HAdx2wWMUkTitRz729EhpASpiHrgTYdIKQugVMjs=
git.gsuntres.com/general/structful v0.0.0-20260415004657-80b95298f342 h1:atJ49utlrKue+mu+lbw18bvhG30TnTXQYokTKrH80+4=
git.gsuntres.com/general/structful v0.0.0-20260415004657-80b95298f342/go.mod h1:QILJDJKzi75Q4av6LvI+/OwXAeqoLtx6p5UZXqlxfKc=
git.gsuntres.com/general/sys v0.0.0-20260329160429-49966ca31027 h1:4pmcjxEDM4rzv+iimQ7wTgCAQ1VnAoeGiHLuf6wC6Fw= git.gsuntres.com/general/sys v0.0.0-20260329160429-49966ca31027 h1:4pmcjxEDM4rzv+iimQ7wTgCAQ1VnAoeGiHLuf6wC6Fw=
git.gsuntres.com/general/sys v0.0.0-20260329160429-49966ca31027/go.mod h1:OVs7w4/tJO1GT7cLIeEsb90LuZqH2xYIVQODI5P1GJs= git.gsuntres.com/general/sys v0.0.0-20260329160429-49966ca31027/go.mod h1:OVs7w4/tJO1GT7cLIeEsb90LuZqH2xYIVQODI5P1GJs=
git.gsuntres.com/general/sys v0.0.1 h1:JpGG6HCkJrTaCICR09kURhMTIc+/s8yb0lHQjo/TDVI= git.gsuntres.com/general/sys v0.0.1 h1:JpGG6HCkJrTaCICR09kURhMTIc+/s8yb0lHQjo/TDVI=

View File

@@ -19,7 +19,7 @@ func BuildFind(col map[string]any, report *InitReport) {
in := []reflect.Type{ in := []reflect.Type{
reflect.TypeOf((*context.Context)(nil)).Elem(), reflect.TypeOf((*context.Context)(nil)).Elem(),
reflect.TypeOf((*map[string]any)(nil)).Elem(), reflect.TypeOf((*map[string]any)(nil)).Elem(),
reflect.TypeOf((*int64)(nil)).Elem(), reflect.TypeOf((*mongo.FindOptions)(nil)).Elem(),
} }
out := []reflect.Type{ out := []reflect.Type{
reflect.TypeOf(bson.M{}), reflect.TypeOf(bson.M{}),
@@ -45,7 +45,7 @@ func BuildFind(col map[string]any, report *InitReport) {
mc := mongo.GetMongoClient() mc := mongo.GetMongoClient()
// we defer function's implementation until we create the actual struct // we defer function's implementation until we create the actual struct
deferedFuncs[funcName] = func(ctx context.Context, filter map[string]any, limit int64) (bson.M, error) { deferedFuncs[funcName] = func(ctx context.Context, filter map[string]any, opts *mongo.FindOptions) (bson.M, error) {
db := "__undefined__" db := "__undefined__"
if isSystem { if isSystem {
db = sysDb db = sysDb
@@ -56,6 +56,5 @@ func BuildFind(col map[string]any, report *InitReport) {
} }
} }
return mc.Find(ctx, db, name, filter, limit) return mc.Find(ctx, db, name, filter, opts)
} }}
}

View File

@@ -19,8 +19,7 @@ func BuildFindOffset(col map[string]any, report *InitReport) {
in := []reflect.Type{ in := []reflect.Type{
reflect.TypeOf((*context.Context)(nil)).Elem(), reflect.TypeOf((*context.Context)(nil)).Elem(),
reflect.TypeOf((*map[string]any)(nil)).Elem(), reflect.TypeOf((*map[string]any)(nil)).Elem(),
reflect.TypeOf((*int64)(nil)).Elem(), reflect.TypeOf((*mongo.FindOptions)(nil)).Elem(),
reflect.TypeOf((*int64)(nil)).Elem(),
} }
out := []reflect.Type{ out := []reflect.Type{
reflect.TypeOf(bson.M{}), reflect.TypeOf(bson.M{}),
@@ -46,7 +45,7 @@ func BuildFindOffset(col map[string]any, report *InitReport) {
mc := mongo.GetMongoClient() mc := mongo.GetMongoClient()
// we defer function's implementation until we create the actual struct // we defer function's implementation until we create the actual struct
deferedFuncs[funcName] = func(ctx context.Context, filter map[string]any, offset int64, limit int64) (bson.M, error) { deferedFuncs[funcName] = func(ctx context.Context, filter map[string]any, opts *mongo.FindOptions) (bson.M, error) {
db := "__undefined__" db := "__undefined__"
if isSystem { if isSystem {
db = sysDb db = sysDb
@@ -57,6 +56,6 @@ func BuildFindOffset(col map[string]any, report *InitReport) {
} }
} }
return mc.FindOffset(ctx, db, name, filter, offset, limit) return mc.FindOffset(ctx, db, name, filter, opts)
} }
} }