aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Crute <mike@crute.us>2021-11-19 12:27:57 -0800
committerMike Crute <mike@crute.us>2021-11-19 12:27:57 -0800
commite2b768f30784018274ece4a5abb0b9270e54a6e8 (patch)
tree0a99bdbd09b416f5bbb743e57c7907ecf2e5fe4a
parent22b90e9deb1f706a3e1e01c64b3fd256112a5ede (diff)
downloadgolib-e2b768f30784018274ece4a5abb0b9270e54a6e8.tar.bz2
golib-e2b768f30784018274ece4a5abb0b9270e54a6e8.tar.xz
golib-e2b768f30784018274ece4a5abb0b9270e54a6e8.zip
db/mongodb: add filter methodsdb/mongodb/v0.3.0
-rw-r--r--db/mongodb/client.go24
1 files 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 {
75 return m.FindAllByFilter(ctx, cn, bson.D{}, out) 75 return m.FindAllByFilter(ctx, cn, bson.D{}, out)
76} 76}
77 77
78func (m *Mongo) FindOneById(ctx context.Context, cn string, id string, out interface{}) error { 78func (m *Mongo) FindOneByFilter(ctx context.Context, cn string, filter interface{}, out interface{}) error {
79 if err := m.db.Collection(cn).FindOne(ctx, bson.M{"_id": id}).Decode(out); err != nil { 79 if err := m.db.Collection(cn).FindOne(ctx, filter).Decode(out); err != nil {
80 return err 80 return err
81 } 81 }
82 82
83 return nil 83 return nil
84} 84}
85 85
86func (m *Mongo) FindOneById(ctx context.Context, cn string, id string, out interface{}) error {
87 return m.FindOneByFilter(ctx, cn, bson.M{"_id": id}, out)
88}
89
86func (m *Mongo) InsertOne(ctx context.Context, cn string, in interface{}) error { 90func (m *Mongo) InsertOne(ctx context.Context, cn string, in interface{}) error {
87 _, err := m.db.Collection(cn).InsertOne(ctx, in) 91 _, err := m.db.Collection(cn).InsertOne(ctx, in)
88 if err != nil { 92 if err != nil {
@@ -92,18 +96,22 @@ func (m *Mongo) InsertOne(ctx context.Context, cn string, in interface{}) error
92 return nil 96 return nil
93} 97}
94 98
95func (m *Mongo) ReplaceOneById(ctx context.Context, cn string, id string, in interface{}) error { 99func (m *Mongo) ReplaceOneByFilter(ctx context.Context, cn string, filter interface{}, in interface{}) error {
96 tp := true 100 tp := true
97 opts := &options.ReplaceOptions{Upsert: &tp} 101 opts := &options.ReplaceOptions{Upsert: &tp}
98 if _, err := m.db.Collection(cn).ReplaceOne(ctx, bson.M{"_id": id}, in, opts); err != nil { 102 if _, err := m.db.Collection(cn).ReplaceOne(ctx, filter, in, opts); err != nil {
99 return err 103 return err
100 } 104 }
101 105
102 return nil 106 return nil
103} 107}
104 108
105func (m *Mongo) DeleteOneById(ctx context.Context, cn string, id string) error { 109func (m *Mongo) ReplaceOneById(ctx context.Context, cn string, id string, in interface{}) error {
106 dr, err := m.db.Collection(cn).DeleteOne(ctx, bson.M{"_id": id}) 110 return m.ReplaceOneByFilter(ctx, cn, bson.M{"_id": id}, in)
111}
112
113func (m *Mongo) DeleteOneByFilter(ctx context.Context, cn string, filter interface{}) error {
114 dr, err := m.db.Collection(cn).DeleteOne(ctx, filter)
107 if err != nil { 115 if err != nil {
108 return err 116 return err
109 } 117 }
@@ -114,3 +122,7 @@ func (m *Mongo) DeleteOneById(ctx context.Context, cn string, id string) error {
114 122
115 return nil 123 return nil
116} 124}
125
126func (m *Mongo) DeleteOneById(ctx context.Context, cn string, id string) error {
127 return m.DeleteOneByFilter(ctx, cn, bson.M{"_id": id})
128}