diff options
author | Mike Crute <mike@crute.us> | 2021-11-19 12:27:57 -0800 |
---|---|---|
committer | Mike Crute <mike@crute.us> | 2021-11-19 12:27:57 -0800 |
commit | e2b768f30784018274ece4a5abb0b9270e54a6e8 (patch) | |
tree | 0a99bdbd09b416f5bbb743e57c7907ecf2e5fe4a | |
parent | 22b90e9deb1f706a3e1e01c64b3fd256112a5ede (diff) | |
download | golib-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.go | 24 |
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 | ||
78 | func (m *Mongo) FindOneById(ctx context.Context, cn string, id string, out interface{}) error { | 78 | func (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 | ||
86 | func (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 | |||
86 | func (m *Mongo) InsertOne(ctx context.Context, cn string, in interface{}) error { | 90 | func (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 | ||
95 | func (m *Mongo) ReplaceOneById(ctx context.Context, cn string, id string, in interface{}) error { | 99 | func (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 | ||
105 | func (m *Mongo) DeleteOneById(ctx context.Context, cn string, id string) error { | 109 | func (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 | |||
113 | func (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 | |||
126 | func (m *Mongo) DeleteOneById(ctx context.Context, cn string, id string) error { | ||
127 | return m.DeleteOneByFilter(ctx, cn, bson.M{"_id": id}) | ||
128 | } | ||