From 28195b7ce586ea1c4c754fd0280568773e0f82b7 Mon Sep 17 00:00:00 2001 From: George Suntres Date: Sat, 18 Apr 2026 20:19:32 -0400 Subject: [PATCH] Use props in Find --- go.mod | 6 +++--- go.sum | 8 ++++++++ persist_find.go | 9 ++++----- persist_find_offset.go | 7 +++---- 4 files changed, 18 insertions(+), 12 deletions(-) diff --git a/go.mod b/go.mod index 1e93952..b1e213c 100644 --- a/go.mod +++ b/go.mod @@ -3,9 +3,9 @@ module git.gsuntres.com/general/persist go 1.25.0 require ( - git.gsuntres.com/general/commons v0.0.0-20260414224953-706ed2e6b0be - git.gsuntres.com/general/mongo v0.0.0-20260411181748-96254895839d - git.gsuntres.com/general/structful v0.0.0-20260402004702-c83e44b04a9f + git.gsuntres.com/general/commons v0.0.0-20260418004121-f52793a7641f + git.gsuntres.com/general/mongo v0.0.0-20260418161100-6e91f8475035 + git.gsuntres.com/general/structful v0.0.0-20260415004657-80b95298f342 github.com/go-viper/mapstructure/v2 v2.5.0 github.com/testcontainers/testcontainers-go v0.41.0 github.com/testcontainers/testcontainers-go/modules/mongodb v0.41.0 diff --git a/go.sum b/go.sum index 37bd231..c69a453 100644 --- a/go.sum +++ b/go.sum @@ -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-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-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/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/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/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/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/go.mod h1:OVs7w4/tJO1GT7cLIeEsb90LuZqH2xYIVQODI5P1GJs= git.gsuntres.com/general/sys v0.0.1 h1:JpGG6HCkJrTaCICR09kURhMTIc+/s8yb0lHQjo/TDVI= diff --git a/persist_find.go b/persist_find.go index 8a37d08..f424f96 100644 --- a/persist_find.go +++ b/persist_find.go @@ -19,7 +19,7 @@ func BuildFind(col map[string]any, report *InitReport) { in := []reflect.Type{ reflect.TypeOf((*context.Context)(nil)).Elem(), reflect.TypeOf((*map[string]any)(nil)).Elem(), - reflect.TypeOf((*int64)(nil)).Elem(), + reflect.TypeOf((*mongo.FindOptions)(nil)).Elem(), } out := []reflect.Type{ reflect.TypeOf(bson.M{}), @@ -45,7 +45,7 @@ func BuildFind(col map[string]any, report *InitReport) { mc := mongo.GetMongoClient() // 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__" if isSystem { 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) + }} diff --git a/persist_find_offset.go b/persist_find_offset.go index 5261fdd..d103474 100644 --- a/persist_find_offset.go +++ b/persist_find_offset.go @@ -19,8 +19,7 @@ func BuildFindOffset(col map[string]any, report *InitReport) { in := []reflect.Type{ reflect.TypeOf((*context.Context)(nil)).Elem(), reflect.TypeOf((*map[string]any)(nil)).Elem(), - reflect.TypeOf((*int64)(nil)).Elem(), - reflect.TypeOf((*int64)(nil)).Elem(), + reflect.TypeOf((*mongo.FindOptions)(nil)).Elem(), } out := []reflect.Type{ reflect.TypeOf(bson.M{}), @@ -46,7 +45,7 @@ func BuildFindOffset(col map[string]any, report *InitReport) { mc := mongo.GetMongoClient() // 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__" if isSystem { 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) } }