Compare commits

..

No commits in common. "13f3abe75dbf2eae988d50e133ba40b3afaac08e" and "f39e1b9c647ff37a9ee77f475446c5747e182bec" have entirely different histories.

5 changed files with 1 additions and 73 deletions

View File

@ -40,8 +40,6 @@ type IModel interface {
FindByID(id interface{}) (*Query, error)
FindOne(query interface{}, options *options.FindOneOptionsBuilder) (*Query, error)
FindPaged(query interface{}, page int64, perPage int64, options *options.FindOptionsBuilder) (*Query, error)
Exists(query interface{}) (bool, error)
ExistsID(id interface{}) (bool, error)
Collection() *mongo.Collection
getIdxs() []*mongo.IndexModel
@ -201,16 +199,6 @@ func (m *Model) Count(query interface{}, options *options.CountOptionsBuilder) (
return coll.CountDocuments(context.TODO(), query, options)
}
func (m *Model) Exists(query interface{}) (bool, error) {
cnt, err := m.Count(query, options.Count())
return cnt > 0, err
}
func (m *Model) ExistsID(id interface{}) (bool, error) {
cnt, err := m.Count(bson.M{"_id": id}, options.Count())
return cnt > 0, err
}
func createBase(d any) (reflect.Value, int, string) {
var n string
var ri *Model

View File

@ -1,7 +1,6 @@
package orm
import (
"encoding/json"
"fmt"
"go.mongodb.org/mongo-driver/v2/bson"
"go.mongodb.org/mongo-driver/v2/mongo/options"
@ -109,8 +108,6 @@ func TestModel_PopulateMulti(t *testing.T) {
for _, s := range final {
assert.NotZero(t, s.Chapters[0].Bands[0].Name)
}
bytes, _ := json.MarshalIndent(final, "", "\t")
fmt.Println(string(bytes))
}
func TestModel_PopulateChained_Multi(t *testing.T) {

View File

@ -394,6 +394,7 @@ func innerWatch(coll *mongo.Collection) {
}}, options.UpdateOne().SetUpsert(true))
}
fmt.Printf("%v\n", data)
}
}

View File

@ -45,7 +45,6 @@ type user struct {
ID int64 `bson:"_id" json:"_id"`
Document `bson:",inline" json:",inline" coll:"users"`
Username string `bson:"username" json:"username"`
Favs []user `bson:"favs" json:"favs" ref:"user"`
}
type story struct {
ID int64 `bson:"_id" json:"_id"`
@ -101,11 +100,6 @@ func (s *user) SetId(id any) {
var author = user{
Username: "tablet.exe",
Favs: []user{
{
Username: "DarQuiel7",
},
},
}
func genChaps(single bool) []chapter {

52
util.go
View File

@ -164,15 +164,6 @@ func incrementInterface(t interface{}) interface{} {
return t
}
func isValidId(t interface{}) bool {
switch t.(type) {
case uint, uint32, uint64, int, int32, int64, string, bson.ObjectID:
return true
default:
return false
}
}
func isObject(t interface{}) bool {
switch t.(type) {
case bson.M, bson.D:
@ -181,49 +172,6 @@ func isObject(t interface{}) bool {
return false
}
}
func traverseFields(f string, val interface{}) (ret interface{}, remaining string) {
split := strings.Split(f, ".")
rv := reflect.ValueOf(val)
for {
if rv.Kind() == reflect.Pointer {
rv = rv.Elem()
} else {
break
}
}
{
asAny := make([]any, 0)
for _, s := range split {
asAny = append(asAny, s)
}
fmt.Println(asAny...)
}
if rv.Kind() == reflect.Slice {
ret = rv.Interface()
remaining = strings.Join(split[1:], ".")
fmt.Println("returning?")
return
}
structField := rv.FieldByName(split[0])
if structField.IsValid() {
fmt.Println(structField.Interface())
if len(split) > 1 {
if structField.Kind() == reflect.Slice {
ret = structField
remaining = strings.Join(split[1:], ".")
return
}
ret, remaining = traverseFields(strings.Join(split[1:], "."), structField.Interface())
fmt.Printf("remaining = %s\n", remaining)
} else {
ret = structField.Interface()
remaining = ""
}
}
return
}
func pull(s reflect.Value, idx int, typ reflect.Type) reflect.Value {
retI := reflect.New(reflect.SliceOf(typ))
for i := 0; i < s.Len(); i++ {