/
sms.go
160 lines (141 loc) · 3.39 KB
/
sms.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
package main
import (
"context"
"fmt"
"time"
"github.com/gunsluo/go-example/mongo/db"
"go.mongodb.org/mongo-driver/bson/primitive"
"go.mongodb.org/mongo-driver/mongo"
"go.mongodb.org/mongo-driver/mongo/options"
)
func main() {
ctx := context.Background()
mongoURL := "mongodb://root:password@127.0.0.1:27017/"
client, err := mongo.Connect(ctx, options.Client().ApplyURI(mongoURL))
if err != nil {
panic(err)
}
d := client.Database("sms")
err = db.SMDocumentCreateIndexes(ctx, d)
if err != nil {
fmt.Println("err:", err)
}
doc := &db.SMDocument{
MID: "000000001",
OmID: "000000001",
SendDate: time.Now(),
Status: "SendOK",
Mobile: "+86 18980501737",
Message: "this is a message short",
}
err = doc.Insert(ctx, d)
if err != nil {
fmt.Println("err:", err)
} else {
fmt.Println("insert:", doc.ID)
}
doc2 := &db.SMDocument{
MID: "000000002",
OmID: "000000002",
SendDate: time.Now(),
Status: "SendOK",
Mobile: "+86 18980501737",
Message: "this is a message short",
}
err = doc2.Insert(ctx, d)
if err != nil {
fmt.Println("err:", err)
} else {
fmt.Println("insert:", doc2.ID)
}
ndoc, err := db.SMDocumentByMID(ctx, d, doc.MID)
if err != nil {
fmt.Println("err:", err)
} else {
fmt.Println("doc:", ndoc)
}
ndoc2, err := db.SMDocumentByMID(ctx, d, doc2.MID)
if err != nil {
fmt.Println("err:", err)
} else {
fmt.Println("doc:", ndoc2)
}
total, err := db.CountSMDocumentByWhere(ctx, d, db.SMDocumentWhere{})
if err != nil {
fmt.Println("err:", err)
} else {
fmt.Println("total:", total)
}
docs, err := db.SMDocumentByWhere(ctx, d, db.SMDocumentWhere{
StartTime: time.Unix(1535298650, 0),
EndTime: time.Now().Add(3 * time.Second),
Limit: 1,
})
if err != nil {
fmt.Println("err:", err)
} else {
fmt.Println("docs:", len(docs))
}
var lastID *primitive.ObjectID
if len(docs) > 0 {
lastID = &docs[len(docs)-1].ID
}
docs, err = db.SMDocumentByWhere(ctx, d, db.SMDocumentWhere{
StartTime: time.Unix(1535298650, 0),
EndTime: time.Now().Add(3 * time.Second),
Limit: 1,
LastID: lastID,
})
if err != nil {
fmt.Println("err:", err)
} else {
fmt.Println("docs:", len(docs))
}
docs, err = db.SMDocumentByWhere(ctx, d, db.SMDocumentWhere{
StartTime: time.Unix(1535298650, 0),
EndTime: time.Now().Add(3 * time.Second),
Mobile: "+86 18980501737",
})
if err != nil {
fmt.Println("err:", err)
} else {
fmt.Println("docs:", len(docs))
}
docs, err = db.SMDocumentByWhere(ctx, d, db.SMDocumentWhere{
StartTime: time.Unix(1535298650, 0),
EndTime: time.Now().Add(3 * time.Second),
Mobile: "+86 18980501737",
Limit: 1,
})
if err != nil {
fmt.Println("err:", err)
} else {
fmt.Println("docs:", len(docs))
}
if len(docs) > 0 {
lastID = &docs[len(docs)-1].ID
}
docs, err = db.SMDocumentByWhere(ctx, d, db.SMDocumentWhere{
StartTime: time.Unix(1535298650, 0),
EndTime: time.Now().Add(3 * time.Second),
Mobile: "+86 18980501737",
LastID: lastID,
})
if err != nil {
fmt.Println("err:", err)
} else {
fmt.Println("docs:", len(docs))
}
docs, err = db.SMDocumentByWhere(ctx, d, db.SMDocumentWhere{
StartTime: time.Unix(1535298650, 0),
EndTime: time.Now().Add(3 * time.Second),
Mobile: "+86 18980501737",
Offset: 1,
})
if err != nil {
fmt.Println("err:", err)
} else {
fmt.Println("docs:", len(docs))
}
client.Disconnect(ctx)
}