Wiskundige operatoren en geneste documenten
Wiskundige operatoren en geneste documenten
Voor deze oefeningenreeks zijn twee datasets voorzien, een collectie met informatie over een boten en een dataset over wielrennen.
Boats
Open de MongoDB-shell en schakel over naar de shipyard-database (gemaakt als onderdeel van de presentatie). Als je deze nog niet hebt, maak je de database nog aan en importeer je de boats.json-collectie.
Boten
Oefening 1.1
Geef de naam, het type en de bemanningscapaciteit weer van boten met een bemanningscapaciteit van meer dan 7 personen.
(3 documenten)
{
name: 'Harbor Spirit',
type: 'Sailboat',
crewCapacity: 8
}
{
name: 'Golden Sail',
type: 'Sailboat',
crewCapacity: 8
}
{
name: 'Golden Crest',
type: 'Sailboat',
crewCapacity: 8
}Oefening 1.2
Toon alle informatie over boten die zijn uitgerust met een GPS en een prijs hebben van minder dan 40.000.
(1 document)
{
_id: ObjectId('6979fee19d03ca5b16368b56'),
name: 'Silver Gull',
type: 'Fishing Boat',
manufacturer: 'MarinaTech',
price: 39000,
crewCapacity: 5,
features: [
'fish finder',
'GPS'
],
specifications: {
engine: 'Yamaha 150HP',
length: 24,
weight: 2750
}
}Oefening 1.3
Toon de namen van boten die een 'fish finder' en een GPS aan boord hebben en een lengte van minimaal 25 meter hebben.
(2 documenten)
{
name: 'Storm Whisper'
}
{
name: 'Silver Harbor'
}Oefening 1.4
Toon welke fabrikanten boten hebben geproduceerd met een 'Honda 200 pk'-motor en een gewicht van minimaal 3000.
(2 waarden)
[ 'BlueWave Designs', 'Oceanic Works' ]Oefening 1.5
Geef de naam en kenmerken weer van boten die zijn uitgerust met een GPS of radio.
(21 documenten)
{
name: 'Sea Breeze',
features: [
'GPS',
'autopilot',
'solar panels'
]
}
{
name: 'Blue Marlin',
features: [
'radio',
'depth finder'
]
}
{
name: 'Wave Dancer',
features: [
'GPS',
'sports seats'
]
}Oefening 1.6
Van speedboten met een lengte van meer dan 20 meter, vermeld de naam, fabrikant en de volgende specificaties: lengte en gewicht.
(2 documenten)
{
name: 'Sea Falcon',
manufacturer: 'HarborCraft',
specifications: {
length: 21,
weight: 2150
}
}
{
name: 'Sea Falcon',
manufacturer: 'HarborCraft',
specifications: {
length: 21,
weight: 2150
}
}Oefening 1.7
Toon de motortypes van boten met minder dan 5 bemanningsleden, maar met een gewicht van meer dan 2500. Zorg ervoor dat elk motortype slechts één keer in het resultaat voorkomt.
(3 waarden)
[ 'Honda 200HP', 'Mercury 175HP', 'Yamaha 150HP' ]Oefening 1.8
Toon de naam, bemanningscapaciteit en motor van boten die geen vissersboot zijn en die een 'Honda 200HP'- of 'Yamaha 150HP'-motor hebben. Sorteer het resultaat op basis van de bemanningscapaciteit van deze boten, met de hoogste capaciteit eerst. Als meerdere boten dezelfde bemanningscapaciteit hebben, sorteer dan verder op naam van a tot z.
(15 documenten)
{
name: 'Golden Crest',
crewCapacity: 8,
specifications: {
engine: 'Honda 200HP'
}
}
{
name: 'Golden Sail',
crewCapacity: 8,
specifications: {
engine: 'Honda 200HP'
}
}
{
name: 'Harbor Spirit',
crewCapacity: 8,
specifications: {
engine: 'Honda 200HP'
}
}
{
name: 'Coral Spirit',
crewCapacity: 7,
specifications: {
engine: 'Honda 200HP'
}
}Oefening 1.9
Hoeveel boten hebben een 'fish finder' en een GPS aan boord en wegen niet meer dan 3000 kg?
3Oefening 1.10
Welke boten (vermeld naam, type en prijs) hebben een prijs tussen 50.000 en 75.000 (inclusief)? Toon het resultaat gesorteerd op prijs van laag naar hoog.
(15 documenten)
{
name: 'Harbor Spirit',
type: 'Sailboat',
price: 51000
}
{
name: 'Sea Pioneer',
type: 'Motorboat',
price: 52000
}
{
name: 'Blue Crest',
type: 'Motorboat',
price: 53000
}Cycling
Maak een nieuwe database 'cycling' aan en daarin een collectie 'bike'. Importeer in deze collectie de data van 'cycling.json'.
Wielrennen
Oefening 2.1
Van fietsen van het merk 'Trek' met een framemaat groter dan 50, vermeld het model, het type fiets en de eigenaar.
(1 document)
{
model: 'Caledonia',
bike_type: 'Gravel',
owner: {
name: 'Mateo GarcÃa',
membership_levels: [
'Touring Collective'
],
countries_ridden: [
'Portugal',
'Italy'
]
}
}Oefening 2.2
In welke landen heeft Emma Rossi al gefietst met haar fietsen van het materiaal 'carbon'? Elk land mag slechts één keer in het resultaat voorkomen.
(3 waarden)
[ 'Belgium', 'Norway', 'Sweden' ]Oefening 2.3
Toon de namen van fietsbezitters die zowel 'River Path' als 'Coastal Loop' als favoriete route hebben.
(3 documenten)
{
owner: {
name: 'Sara Lindahl'
}
}
{
owner: {
name: 'Emma Rossi'
}
}
{
owner: {
name: 'Mateo GarcÃa'
}
}Oefening 2.4
Van welke merken zijn er fietsen van het type 'Gravel' te vinden die vóór 2020 zijn gekocht en waarmee de fietser in Frankrijk heeft gereden?
(3 waarden)
[ 'Bianchi', 'Giant', 'Scott' ]Oefening 2.5
Noah Schmidt lijkt een fietsfanaat te zijn. Hoeveel fietsen heeft eigenaar Noah Schmidt?
3Oefening 2.6
Met welke van de fietsen van Noah Schmidt heeft deze persoon al in Noorwegen gereden? Geef het fietsnummer, merk, model en type aan.
(2 documenten)
{
bike_id: 'CYC-0035',
brand: 'Bianchi',
model: 'Infinito',
bike_type: 'Gravel'
}
{
bike_id: 'CYC-0042',
brand: 'Cannondale',
model: 'Agree',
bike_type: 'Mountain'
}Oefening 2.7
Welke van de fietsen uit oefening 1.2.6 zijn tussen 2020 en 2023 gekocht? Toon dezelfde velden.
(1 document)
{
bike_id: 'CYC-0035',
brand: 'Bianchi',
model: 'Infinito',
bike_type: 'Gravel'
}Oefening 2.8
Toon de namen van alle eigenaren wiens favoriete route met een niet-elektrische fiets een 'Forest Trail', 'Coastal Loop' of 'Hill Climb' is. Toon elke naam slechts één keer.
(9 waarden)
[
'Anna Müller',
'Emma Rossi',
'Julia Svensson',
'Liam Jacobs',
'Lucas Fontaine',
'Marco Silva',
'Mateo GarcÃa',
'Sara Lindahl',
'Tom Harrington'
]Oefening 2.9
Toon het merk, model en de naam van de eigenaar van elektrische fietsen. Toon alleen fietsen waarvan de eigenaar in Duitsland en Noorwegen heeft gefietst en die niet het lidmaatschapsniveau 'Road Championship' heeft. Sorteer het resultaat alfabetisch op basis van het model van de fiets.
(2 documenten)
{
brand: 'Cannondale',
model: 'Agree',
owner: {
name: 'Noah Schmidt'
}
}
{
brand: 'Bianchi',
model: 'Infinito',
owner: {
name: 'Noah Schmidt'
}
}Oefening 2.10
Toon het merk, model, type, framemateriaal en afmetingen van fietsen die aan de volgende eisen voldoen:
- Gewicht minder dan 9 kg
- Framemaat groter dan 50
- Elektrisch
- Gekocht vóór 2019
Sorteer het resultaat op framemaat (van hoog naar laag).
(2 documenten)
{
brand: 'Specialized',
model: 'Infinito',
bike_type: 'Mountain',
frame_material: 'Carbon'
}
{
brand: 'Specialized',
model: 'Infinito',
bike_type: 'Mountain',
frame_material: 'Carbon'
}Oefening 2.11
Hoeveel elektrische mountainbikes met een wielmaat tussen 27 en 30 (inclusief) zijn er door het merk Scott gemaakt?
1Oefening 2.12
Hoeveel fietsen zijn er gemaakt van aluminium, wegen meer dan 10 kg, zijn eigendom van iemand met het lidmaatschapsniveau 'MTB League' en hebben een ander merk dan 'Cannondale'?
1