From e2b768f30784018274ece4a5abb0b9270e54a6e8 Mon Sep 17 00:00:00 2001 From: Mike Crute Date: Fri, 19 Nov 2021 12:27:57 -0800 Subject: db/mongodb: add filter methods --- db/mongodb/client.go | 24 ++++++++++++++++++------ 1 file changed, 18 insertions(+), 6 deletions(-) diff --git a/db/mongodb/client.go b/db/mongodb/client.go index e6e9f0b..705b151 100644 --- a/db/mongodb/client.go +++ b/db/mongodb/client.go @@ -75,14 +75,18 @@ func (m *Mongo) FindAll(ctx context.Context, cn string, out interface{}) error { return m.FindAllByFilter(ctx, cn, bson.D{}, out) } -func (m *Mongo) FindOneById(ctx context.Context, cn string, id string, out interface{}) error { - if err := m.db.Collection(cn).FindOne(ctx, bson.M{"_id": id}).Decode(out); err != nil { +func (m *Mongo) FindOneByFilter(ctx context.Context, cn string, filter interface{}, out interface{}) error { + if err := m.db.Collection(cn).FindOne(ctx, filter).Decode(out); err != nil { return err } return nil } +func (m *Mongo) FindOneById(ctx context.Context, cn string, id string, out interface{}) error { + return m.FindOneByFilter(ctx, cn, bson.M{"_id": id}, out) +} + func (m *Mongo) InsertOne(ctx context.Context, cn string, in interface{}) error { _, err := m.db.Collection(cn).InsertOne(ctx, in) if err != nil { @@ -92,18 +96,22 @@ func (m *Mongo) InsertOne(ctx context.Context, cn string, in interface{}) error return nil } -func (m *Mongo) ReplaceOneById(ctx context.Context, cn string, id string, in interface{}) error { +func (m *Mongo) ReplaceOneByFilter(ctx context.Context, cn string, filter interface{}, in interface{}) error { tp := true opts := &options.ReplaceOptions{Upsert: &tp} - if _, err := m.db.Collection(cn).ReplaceOne(ctx, bson.M{"_id": id}, in, opts); err != nil { + if _, err := m.db.Collection(cn).ReplaceOne(ctx, filter, in, opts); err != nil { return err } return nil } -func (m *Mongo) DeleteOneById(ctx context.Context, cn string, id string) error { - dr, err := m.db.Collection(cn).DeleteOne(ctx, bson.M{"_id": id}) +func (m *Mongo) ReplaceOneById(ctx context.Context, cn string, id string, in interface{}) error { + return m.ReplaceOneByFilter(ctx, cn, bson.M{"_id": id}, in) +} + +func (m *Mongo) DeleteOneByFilter(ctx context.Context, cn string, filter interface{}) error { + dr, err := m.db.Collection(cn).DeleteOne(ctx, filter) if err != nil { return err } @@ -114,3 +122,7 @@ func (m *Mongo) DeleteOneById(ctx context.Context, cn string, id string) error { return nil } + +func (m *Mongo) DeleteOneById(ctx context.Context, cn string, id string) error { + return m.DeleteOneByFilter(ctx, cn, bson.M{"_id": id}) +} -- cgit v1.2.3