-
Notifications
You must be signed in to change notification settings - Fork 6
/
Copy pathetl_view.js
66 lines (65 loc) · 1.25 KB
/
etl_view.js
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
db.createView("ordes_table", "orders", [
{
"$project" : {
"items" : 0,
"tracking" : 0
}
},
{
"$addFields" : {
"id" : "$order_id"
}
},
{
"$unset" : [
"_id",
"order_id"
]
}
])
db.createView("items_table", "orders", [
{
"$project" : {
"tracking" : 0,
"first_name" : 0,
"last_name" : 0,
"shipping_address" : 0
}
},
{
"$unwind" : "$items"
},
{
"$project" : {
"order_id" : "$order_id",
"item_id" : "$items.item_id",
"price" : "$items.price",
"description" : "$items.description",
"qty" : "$items.qty"
}
},
{
"$unset" : "_id"
}
)]
db.createView("tracking_table", "orders", [
{
"$unset" : [
"_id",
"items",
"first_name",
"last_name",
"shipping_address"
]
},
{
"$unwind" : "$tracking"
},
{
"$project" : {
"order_id" : "$order_id",
"status" : "$tracking.status",
"timestamp" : "$tracking.timestamp"
}
}
])