...
1
2
3
4
5
6
7 package mongo
8
9 import (
10 "go.mongodb.org/mongo-driver/bson"
11 )
12
13
14
15
16 type IndexOptionsBuilder struct {
17 document bson.D
18 }
19
20
21
22
23 func NewIndexOptionsBuilder() *IndexOptionsBuilder {
24 return &IndexOptionsBuilder{}
25 }
26
27
28
29
30 func (iob *IndexOptionsBuilder) Background(background bool) *IndexOptionsBuilder {
31 iob.document = append(iob.document, bson.E{"background", background})
32 return iob
33 }
34
35
36
37
38 func (iob *IndexOptionsBuilder) ExpireAfterSeconds(expireAfterSeconds int32) *IndexOptionsBuilder {
39 iob.document = append(iob.document, bson.E{"expireAfterSeconds", expireAfterSeconds})
40 return iob
41 }
42
43
44
45
46 func (iob *IndexOptionsBuilder) Name(name string) *IndexOptionsBuilder {
47 iob.document = append(iob.document, bson.E{"name", name})
48 return iob
49 }
50
51
52
53
54 func (iob *IndexOptionsBuilder) Sparse(sparse bool) *IndexOptionsBuilder {
55 iob.document = append(iob.document, bson.E{"sparse", sparse})
56 return iob
57 }
58
59
60
61
62 func (iob *IndexOptionsBuilder) StorageEngine(storageEngine interface{}) *IndexOptionsBuilder {
63 iob.document = append(iob.document, bson.E{"storageEngine", storageEngine})
64 return iob
65 }
66
67
68
69
70 func (iob *IndexOptionsBuilder) Unique(unique bool) *IndexOptionsBuilder {
71 iob.document = append(iob.document, bson.E{"unique", unique})
72 return iob
73 }
74
75
76
77
78 func (iob *IndexOptionsBuilder) Version(version int32) *IndexOptionsBuilder {
79 iob.document = append(iob.document, bson.E{"v", version})
80 return iob
81 }
82
83
84
85
86 func (iob *IndexOptionsBuilder) DefaultLanguage(defaultLanguage string) *IndexOptionsBuilder {
87 iob.document = append(iob.document, bson.E{"default_language", defaultLanguage})
88 return iob
89 }
90
91
92
93
94 func (iob *IndexOptionsBuilder) LanguageOverride(languageOverride string) *IndexOptionsBuilder {
95 iob.document = append(iob.document, bson.E{"language_override", languageOverride})
96 return iob
97 }
98
99
100
101
102 func (iob *IndexOptionsBuilder) TextVersion(textVersion int32) *IndexOptionsBuilder {
103 iob.document = append(iob.document, bson.E{"textIndexVersion", textVersion})
104 return iob
105 }
106
107
108
109
110 func (iob *IndexOptionsBuilder) Weights(weights interface{}) *IndexOptionsBuilder {
111 iob.document = append(iob.document, bson.E{"weights", weights})
112 return iob
113 }
114
115
116
117
118 func (iob *IndexOptionsBuilder) SphereVersion(sphereVersion int32) *IndexOptionsBuilder {
119 iob.document = append(iob.document, bson.E{"2dsphereIndexVersion", sphereVersion})
120 return iob
121 }
122
123
124
125
126 func (iob *IndexOptionsBuilder) Bits(bits int32) *IndexOptionsBuilder {
127 iob.document = append(iob.document, bson.E{"bits", bits})
128 return iob
129 }
130
131
132
133
134 func (iob *IndexOptionsBuilder) Max(max float64) *IndexOptionsBuilder {
135 iob.document = append(iob.document, bson.E{"max", max})
136 return iob
137 }
138
139
140
141
142 func (iob *IndexOptionsBuilder) Min(min float64) *IndexOptionsBuilder {
143 iob.document = append(iob.document, bson.E{"min", min})
144 return iob
145 }
146
147
148
149
150 func (iob *IndexOptionsBuilder) BucketSize(bucketSize int32) *IndexOptionsBuilder {
151 iob.document = append(iob.document, bson.E{"bucketSize", bucketSize})
152 return iob
153 }
154
155
156
157
158 func (iob *IndexOptionsBuilder) PartialFilterExpression(partialFilterExpression interface{}) *IndexOptionsBuilder {
159 iob.document = append(iob.document, bson.E{"partialFilterExpression", partialFilterExpression})
160 return iob
161 }
162
163
164
165
166 func (iob *IndexOptionsBuilder) Collation(collation interface{}) *IndexOptionsBuilder {
167 iob.document = append(iob.document, bson.E{"collation", collation})
168 return iob
169 }
170
171
172
173
174 func (iob *IndexOptionsBuilder) Build() bson.D {
175 return iob.document
176 }
177
View as plain text