Skip to content

Commit 492dbb1

Browse files
authored
RUST-537 Aggregation, runCommand, and index management examples (#508)
1 parent 8311c41 commit 492dbb1

File tree

2 files changed

+515
-1
lines changed

2 files changed

+515
-1
lines changed
Lines changed: 255 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,255 @@
1+
use bson::{doc, DateTime};
2+
3+
use crate::Database;
4+
5+
use super::GenericResult;
6+
7+
pub(crate) async fn populate(db: &Database) -> GenericResult<()> {
8+
let date_20180208 = DateTime::parse_rfc3339_str("2018-02-08T09:00:00.000Z")?;
9+
let date_20180109 = DateTime::parse_rfc3339_str("2018-01-09T07:12:00.000Z")?;
10+
let date_20180127 = DateTime::parse_rfc3339_str("2018-01-27T09:13:00.000Z")?;
11+
let date_20180203 = DateTime::parse_rfc3339_str("2018-02-03T07:58:00.000Z")?;
12+
let date_20180205 = DateTime::parse_rfc3339_str("2018-02-05T06:03:00.000Z")?;
13+
let date_20180111 = DateTime::parse_rfc3339_str("2018-01-11T07:15:00.000Z")?;
14+
15+
db.collection("sales")
16+
.insert_many(
17+
vec![
18+
doc! {
19+
"date": date_20180208,
20+
"items": [
21+
doc! {
22+
"fruit": "kiwi",
23+
"quantity": 2,
24+
"price": 0.5,
25+
},
26+
doc! {
27+
"fruit": "apple",
28+
"quantity": 1,
29+
"price": 1.0,
30+
},
31+
],
32+
},
33+
doc! {
34+
"date": date_20180109,
35+
"items": [
36+
doc! {
37+
"fruit": "banana",
38+
"quantity": 8,
39+
"price": 1.0,
40+
},
41+
doc! {
42+
"fruit": "apple",
43+
"quantity": 1,
44+
"price": 1.0,
45+
},
46+
doc! {
47+
"fruit": "papaya",
48+
"quantity": 1,
49+
"price": 4.0,
50+
},
51+
],
52+
},
53+
doc! {
54+
"date": date_20180127,
55+
"items": [
56+
doc! {
57+
"fruit": "banana",
58+
"quantity": 1,
59+
"price": 1.0,
60+
},
61+
],
62+
},
63+
doc! {
64+
"date": date_20180203,
65+
"items": [
66+
doc! {
67+
"fruit": "banana",
68+
"quantity": 1,
69+
"price": 1.0,
70+
},
71+
],
72+
},
73+
doc! {
74+
"date": date_20180205,
75+
"items": [
76+
doc! {
77+
"fruit": "banana",
78+
"quantity": 1,
79+
"price": 1.0,
80+
},
81+
doc! {
82+
"fruit": "mango",
83+
"quantity": 2,
84+
"price": 2.0,
85+
},
86+
doc! {
87+
"fruit": "apple",
88+
"quantity": 1,
89+
"price": 1.0,
90+
},
91+
],
92+
},
93+
doc! {
94+
"date": date_20180111,
95+
"items": [
96+
doc! {
97+
"fruit": "banana",
98+
"quantity": 1,
99+
"price": 1.0,
100+
},
101+
doc! {
102+
"fruit": "apple",
103+
"quantity": 1,
104+
"price": 1.0,
105+
},
106+
doc! {
107+
"fruit": "papaya",
108+
"quantity": 3,
109+
"price": 4.0,
110+
},
111+
],
112+
},
113+
],
114+
None,
115+
)
116+
.await?;
117+
db.collection("airlines")
118+
.insert_many(
119+
vec![
120+
doc! {
121+
"airline": 17,
122+
"name": "Air Canada",
123+
"alias": "AC",
124+
"iata": "ACA",
125+
"icao": "AIR CANADA",
126+
"active": "Y",
127+
"country": "Canada",
128+
"base": "TAL",
129+
},
130+
doc! {
131+
"airline": 18,
132+
"name": "Turkish Airlines",
133+
"alias": "YK",
134+
"iata": "TRK",
135+
"icao": "TURKISH",
136+
"active": "Y",
137+
"country": "Turkey",
138+
"base": "AET",
139+
},
140+
doc! {
141+
"airline": 22,
142+
"name": "Saudia",
143+
"alias": "SV",
144+
"iata": "SVA",
145+
"icao": "SAUDIA",
146+
"active": "Y",
147+
"country": "Saudi Arabia",
148+
"base": "JSU",
149+
},
150+
doc! {
151+
"airline": 29,
152+
"name": "Finnair",
153+
"alias": "AY",
154+
"iata": "FIN",
155+
"icao": "FINNAIR",
156+
"active": "Y",
157+
"country": "Finland",
158+
"base": "JMZ",
159+
},
160+
doc! {
161+
"airline": 34,
162+
"name": "Afric'air Express",
163+
"alias": "",
164+
"iata": "AAX",
165+
"icao": "AFREX",
166+
"active": "N",
167+
"country": "Ivory Coast",
168+
"base": "LOK",
169+
},
170+
doc! {
171+
"airline": 37,
172+
"name": "Artem-Avia",
173+
"alias": "",
174+
"iata": "ABA",
175+
"icao": "ARTEM-AVIA",
176+
"active": "N",
177+
"country": "Ukraine",
178+
"base": "JBR",
179+
},
180+
doc! {
181+
"airline": 38,
182+
"name": "Lufthansa",
183+
"alias": "LH",
184+
"iata": "DLH",
185+
"icao": "LUFTHANSA",
186+
"active": "Y",
187+
"country": "Germany",
188+
"base": "CYS",
189+
},
190+
],
191+
None,
192+
)
193+
.await?;
194+
db.collection("air_alliances")
195+
.insert_many(
196+
vec![
197+
doc! {
198+
"name": "Star Alliance",
199+
"airlines": [
200+
"Air Canada",
201+
"Avianca",
202+
"Air China",
203+
"Air New Zealand",
204+
"Asiana Airlines",
205+
"Brussels Airlines",
206+
"Copa Airlines",
207+
"Croatia Airlines",
208+
"EgyptAir",
209+
"TAP Portugal",
210+
"United Airlines",
211+
"Turkish Airlines",
212+
"Swiss International Air Lines",
213+
"Lufthansa",
214+
],
215+
},
216+
doc! {
217+
"name": "SkyTeam",
218+
"airlines": [
219+
"Aerolinias Argentinas",
220+
"Aeromexico",
221+
"Air Europa",
222+
"Air France",
223+
"Alitalia",
224+
"Delta Air Lines",
225+
"Garuda Indonesia",
226+
"Kenya Airways",
227+
"KLM",
228+
"Korean Air",
229+
"Middle East Airlines",
230+
"Saudia",
231+
],
232+
},
233+
doc! {
234+
"name": "OneWorld",
235+
"airlines": [
236+
"Air Berlin",
237+
"American Airlines",
238+
"British Airways",
239+
"Cathay Pacific",
240+
"Finnair",
241+
"Iberia Airlines",
242+
"Japan Airlines",
243+
"LATAM Chile",
244+
"LATAM Brasil",
245+
"Malasya Airlines",
246+
"Canadian Airlines",
247+
],
248+
},
249+
],
250+
None,
251+
)
252+
.await?;
253+
254+
Ok(())
255+
}

0 commit comments

Comments
 (0)