-
Notifications
You must be signed in to change notification settings - Fork 0
/
PR.txt
140 lines (98 loc) · 3.83 KB
/
PR.txt
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
1.1) SETUP BASE DE DADOS -------------------------------------------------------------------------------------
Estou a usar um teclado em ingles por isso pode acontecer de palavras nao tem acentos.
1.1
ALTERACOES AO DATASET
Utilizando a funcionalidade do ctrl f do vscode alterei o campo "Id" para ter o nome "_id" para assim
estar de acordo com o mongo db
Para dar import do ficheiro para o mongo (estando na pasta data)
mongoimport -d plantas -c plantas --file plantas.json --jsonArray
Resultado:
2023-05-30T14:12:39.837+0100 connected to: mongodb://localhost/
2023-05-30T14:12:40.649+0100 29617 document(s) imported successfully. 0 document(s) failed to import.
1.2) QUERIES ------------------------------------
1. Quantos registos estão na base de dados;
db.plantas.countDocuments()
29617
2.Quantos registos de plantação se encontram na freguesia "São Domingos de Rana"?
db.plantas.find({Freguesia: "São Domingos de Rana"}).count()
5903
(ou utilizando regex tambem se poderia usar db.plantas.find({Freguesia: {$regex:"São Domingos de Rana"}}).count())
3.Qual a lista de freguesias (ordenada alfabeticamente e sem repetições)?
db.plantas.distinct("Freguesia").sort()
[
'',
'Abóboda',
'Alcabideche',
'São Domingos de Rana',
'U.F. Carcavelos e Parede',
'U.F. Cascais e Estoril'
]
4.Qual a distribuição dos registos por freguesia (quantos registos em cada freguesia)
db.plantas.aggregate([ { $group : { _id: "$Freguesia", total: {$count: {}}}}])
[
{ _id: 'Alcabideche', total: 4034 },
{ _id: 'São Domingos de Rana', total: 5903 },
{ _id: 'Abóboda', total: 2 },
{ _id: 'U.F. Carcavelos e Parede', total: 7629 },
{ _id: '', total: 26 },
{ _id: 'U.F. Cascais e Estoril', total: 12023 }
]
5.Qual a distribuição dos registos por espécie?
db.plantas.aggregate([ { $group : { _id: "$Espécie", total: {$count: {}}}}])
[
{ _id: 'jacaranda', total: 684 },
{ _id: 'Hibisco', total: 3 },
{ _id: 'loureiro real', total: 3 },
{ _id: 'a identificar', total: 1311 },
{ _id: 'ulmeiro', total: 19 },
{ _id: 'A identificar', total: 5 },
{ _id: 'limoeiro', total: 19 },
{ _id: 'olaia', total: 567 },
{ _id: 'amieiro', total: 35 },
{ _id: 'pinheiro das canarias', total: 4 },
{ _id: 'lagerstroemia', total: 406 },
{ _id: 'Jacaranda', total: 141 },
{ _id: 'cipreste comum', total: 281 },
{ _id: 'pinheiro do alepo', total: 559 },
{ _id: 'tilia prateada', total: 7 },
{ _id: 'Bordo Prateado', total: 7 },
{ _id: 'Borracheira', total: 33 },
{ _id: 'buganvilia', total: 6 },
{ _id: 'pinheiro bravo', total: 20 },
{ _id: 'eugenia', total: 5 }
]
NOTA: HA MAIS PLANTAS, para as descobrir e as suas disbrituicoes bastava escrever it no mongosh ate a que se chegasse ao resultado final
Type "it" for more
1.3) EXERCICIO 1 --------------------------------------------------------------------------------
A API encontra-se na pasta "ex1" e para ser usada:
>> cd ex1
>> npm install
>> npm start
Testando com o postman deu tudo correto: (segue em baixo um exemplo do output da consola e os codigo)
POST /plantas 201 13.371 ms - 17
GET /plantas/1 200 15.697 ms - 17
DELETE /plantas/1 200 5.842 ms - 38
GET /plantas/1 200 2.774 ms - 4
EXEMPLO DE INPUT RECEBIDO NO POSTMAN !!!
POST de uma planta com id 1 (id nao existente na base de dados)
{
"_id": 1,
"__v": 0
}
http://localhost:15030/plantas/1
Delete dessa planta. Resultado do Postman
{
"acknowledged": true,
"deletedCount": 1
}
GET /plantas?especie=bordo%20negundo 200 210.542 ms - 398495
GET /plantas?implant=Arruamento 200 1192.290 ms - 8749903
2)EXERCICIO 2 ---------------------------------------------------------------------------
A Web App encontra-se na pasta "ex2" e para ser usada:
>> cd ex2
>> npm install
>> npm start
exemplo de rotas de teste:
http://localhost:15031/especies/pinheiro%20manso
http://localhost:15031/
http://localhost:15031/20615585