SlideShare a Scribd company logo
MongoDB Aggregations
Mikhail Asavkin
@limenutt
Soup du jour
● My company
● Business context
● Aggregation basics
● Coding!
● Take home task
We all interact with property every
day.
We build, sell, buy, rent, lease,
own, use and admire it.
At Skychute
We improve experiences people
have with property.
We use technology to provide
tenants, owners, investors, agents,
developers and builders with
greater experience and outcomes.
At the heart of our company,
our greatest asset are
brave engineers
passionate about property.
Join
our cause
Meet the data!
@limenutt
@limenutt
MS L
M LS
M LS
M LS
The Product
M LS
The Product
$29
$29
$29
The Variant
Product: T-Shirt #42
Colour: Yolk
Size: S
S @limenutt
S
The Variant
Product: T-Shirt #42
Colour: Snow
Size: S
@limenutt
M
The Variant
Product: T-Shirt #42
Colour: Snow
Size: M
@limenutt
M
The Variant
Product: T-Shirt #42
Colour: Yolk
Size: M
@limenutt
@limenutt
Categories
S/S Tee
(T-Shirt)
@limenutt
Categories
S/S Tee
(T-Shirt)
S/S Polo
@limenutt
Categories
S/S Tee
(T-Shirt)
S/S Polo S/S Shirt
@limenutt
Categories
S/S Tee
(T-Shirt)
S/S Polo S/S Shirt L/S Shirt
@limenutt
@limenutt
Crew neck V-neck
@limenutt
Tags
Crew neck V-neck
@limenutt
Tags
Crew neck Slim V-neck Regular
@limenutt
Tags
Crew neck Slim
Plain
V-neck Regular
Plain @limenutt
Tags
Crew neck Slim
CasualPlain
V-neck Regular
Smart-CasualPlain @limenutt
Tag buckets
Crew neck Slim
CasualPlain
V-neck Regular
Smart-CasualPlain @limenutt
Tag buckets
Crew neck Slim
CasualPlain
V-neck Regular
Smart-CasualPlain @limenutt
Tag buckets
Crew neck Slim
CasualPlain
V-neck Regular
Smart-CasualPlain @limenutt
Tag buckets
Crew neck Slim
CasualPlain
V-neck Regular
Smart-CasualPlain @limenutt
Order
Order
customer
owner
salesperson
variant 1
variant 2
variant 3 @limenutt
Product
Category bucket
variants
Variant
category
brand
tags
Brand
Category
categories
Tag bucket
tagBuckets
Tag
tags
Order
variants
customer
owner User
Customer
Colour
product
supplierColours
equivalent
Schema
@limenutt
Questions
about the data?
@limenutt
Querying data
from MongoDB
@limenutt
MongoDB Basics
● MongoDB = Document-oriented database
● Document = record
● Document structure is almost JSON
● Documents belong to a Collection
● Database has many Collections
@limenutt
MongoDB Basics: Sample document
@limenutt
MongoDB Basics: Simple query
@limenutt
MongoDB Basics: Simple query
@limenutt
MongoDB Basics: Simple query
@limenutt
MongoDB Basics: Simple query
@limenutt
MongoDB Basics: Simple query
@limenutt
MongoDB Basics: Simple query
@limenutt
MongoDB Basics: Simple query
@limenutt
MongoDB
Aggregation Pipeline
@limenutt
● FAST: 10x faster than doing the same in the backend
● EASY TO USE: Build a complex report in a few minutes
Why use Aggregation Pipeline
@limenutt
● Aggregation is a list of operations
What is Aggregation Pipeline
@limenutt
● Aggregation is a list of operations
● Operations performed in order
What is Aggregation Pipeline
@limenutt
● Aggregation is a list of operations
● Operations performed in order
● Output of the previous operation is the input of the next
one, hence Pipeline
What is Aggregation Pipeline
@limenutt
● Aggregation is a list of operations
● Operations performed in order
● Output of the previous operation is the input of the next
one, hence Pipeline
● It’s mapreduce on steroids
What is Aggregation Pipeline
@limenutt
$match( or )
$group(‘$colour’)
collection(‘shapes’)
@limenutt
$match( or )
$group(‘$colour’)
collection(‘shapes’)
@limenutt
$match( or )
$group(‘$colour’)
collection(‘shapes’)
@limenutt
$match( or )
$group(‘$colour’)
collection(‘shapes’)
Aggregation Pipeline
basics
@limenutt
Aggregation pipeline:
@limenutt
Aggregation pipeline:
Aggregation stage 1
Aggregation stage 2
@limenutt
@limenutt
Aggregation stage name
@limenutt
Aggregation stage name
Aggregation stage body
@limenutt
Starter app
@limenutt
bit.ly/mongoapp
@limenutt
1. Open the project in your
favourite editor (vscode)
@limenutt
1. Open the project in your
favourite editor (vscode)
2. Open the terminal window
@limenutt
1. Open the project in your
favourite editor (vscode)
2. Open the terminal window
3. Run
npm i && npm run start-w
src/app.ts
@limenutt
src/app.ts
Your password goes there
@limenutt
src/app.ts
Here goes your
aggregation pipeline
@limenutt
src/app.ts
@limenutt
src/app.ts
This is the collection you are
fetching the data from.
You will need to change it
depending on the task @limenutt
Please, keep the docs open:
@limenutt
Please, keep the docs open:
● Aggregation Pipeline
Stages
@limenutt
Please, keep the docs open:
● Aggregation Pipeline
Stages
● Aggregation Pipeline
Operators @limenutt
Let’s code!
@limenutt
T: Filtering ($match stage)
@limenutt
T: Filtering ($match stage)
E: List all orders with postcode 2000
@limenutt
T: Filtering ($match stage)
E: List all orders with postcode 2000
@limenutt
T: Filtering ($match stage)
E: List all orders with postcode 2000
@limenutt
T: Filtering ($match stage)
E: List all orders with postcode 2000
@limenutt
T: Filtering ($match stage)
E: List all orders with postcode 2000
Operator ‘equals’ [a, b]
@limenutt
T: Filtering ($match stage)
E: List all orders with postcode 2000
Operator ‘equals’ [a, b]
Reference to the field postcode
@limenutt
T: Filtering ($match stage)
E: List all orders with postcode 2000
Operator ‘equals’ [a, b]
Reference to the field postcode
@limenutt
T: Filtering ($match stage)
E: List all orders with postcode 2000
Operator ‘equals’ [a, b]
Reference to the field postcode
@limenutt
T: Filtering ($match stage)
1. List all orders in NSW
2. List all products under $50 (retailPrice)
3. List all products within $50 — $100
@limenutt
T: Sorting ($sort stage)
E: Orders sorted by creation date
@limenutt
T: Sorting ($sort stage)
E: Orders sorted by creation date
@limenutt
T: Sorting ($sort stage)
1. Products sorted by retail price
ascending
2. Products sorted by retail price
descending
@limenutt
T: Limiting ($limit stage)
E: Top 5 most recent orders
@limenutt
T: Limiting ($limit stage)
E: Top 5 most recent orders
@limenutt
T: Limiting ($limit stage)
E: Top 5 most recent orders
@limenutt
T: Limiting ($limit stage)
1. Top 10 most expensive products
@limenutt
T: Grouping ($group stage)
E: List all order types
@limenutt
T: Grouping ($group stage)
E: List all order types
@limenutt
T: Grouping ($group stage)
1. List all order postcodes
@limenutt
T: Group accumulator operators
E: Average product retail price
@limenutt
T: Group accumulator operators
E: Average product retail price
@limenutt
T: Group accumulator operators
E: Average product retail price
Accumulator operator ‘average’
@limenutt
T: Group accumulator operators
1. Maximum product price
2. Sum of prices of all products
3. Total number of products
@limenutt
T: Filtering + counting
1. Number of orders with type of
Style Lab
2. Number of products over $100
@limenutt
T: Grouping + counting
1. Number of orders by type
2. Number of orders by state
3. Number of colours by name
@limenutt
T: Adding fields and Expressions
E: Products with margin amounts
@limenutt
T: Adding fields and Expressions
E: Products with margin amounts
@limenutt
T: Adding fields and Expressions
E: Products with margin amounts
This stage adds new fields to the documents
@limenutt
T: Adding fields and Expressions
E: Products with margin amounts
This stage adds new fields to the documents
Field expression
@limenutt
T: Adding fields and Expressions
1. Products with margin percentage
2. Top 10 products with the highest
margin percentage
3. Products by number of variants
@limenutt
T: 1-1 Lookups
Product
brand (id)
Brand
name
_id
@limenutt
T: 1-1 Lookups
Product
brand (id)
Brand
name
_id
Product
brand:
name
_id
$lookup
@limenutt
T: 1-1 Lookups ($lookup stage)
E: Products with brand
@limenutt
T: 1-1 Lookups ($lookup stage)
E: Products with brand
@limenutt
T: 1-1 Lookups ($lookup stage)
E: Products with brand
Collection to look up from
Field to match from current collection
Field to match from another collection
Field for the result
@limenutt
T: 1-1 Lookups ($lookup stage)
E: Products with brand
Collection to look up from
Field to match from current collection
Field to match from another collection
Field for the result
The result is always an array
@limenutt
T: 1-1 Lookups ($lookup stage)
E: Products with brand
Collection to look up from
Field to match from current collection
Field to match from another collection
Field for the result
The result is always an array
Turn array into object (for now)@limenutt
T: 1-1 Lookups ($lookup stage)
1. Variants with product
2. Variants with retail price
@limenutt
T: 1-* Lookups
Product
variants [id, id,...id]
Variant
size
_id
@limenutt
T: 1-* Lookups
Product
variants [id, id,...id]
Variant
size
_id
Product
variants:
$lookup
size
_id
size
_id
size
_id
size
_id
@limenutt
T: 1-* Lookups
E: Products with variants
@limenutt
T: 1-* Lookups
E: Products with variants
@limenutt
T: 1-* Lookups
1. Orders with variants and customer
@limenutt
T: Lookups with grouping
1. Number of products by category
2. Average product price by brand
@limenutt
1. Top 10 most expensive Casual products
2. Top 5 cheapest red products
3. Products with tags joined by commas
T: Lookups with expressions
@limenutt
T: Lookups with sub-pipelines
Order
variants [id, id,...id]
Variant
size
_id
customer
@limenutt
T: Lookups with sub-pipelines
Order
variants [id, id,...id]
Variant
size
_id
Variant
orders:
$lookup
customer
_id
customer
_id
customer
_id
customer
_id
customer
@limenutt
T: Lookups with sub-pipelines
@limenutt
T: Lookups with sub-pipelines
@limenutt
T: Lookups with sub-pipelines
Variables to be used in sub-pipeline
@limenutt
T: Lookups with sub-pipelines
Variables to be used in sub-pipeline
This pipeline is executed in orders collection
@limenutt
T: Lookups with sub-pipelines
Variables to be used in sub-pipeline
This pipeline is executed in orders collection
$in [b, a] operator checks if value b is in the array a
Identity comparison used!
@limenutt
T: Lookups with sub-pipelines
1. Products with orders
2. Orders with total amounts
@limenutt
T: Dates
E: Number of orders by year
@limenutt
T: Dates
E: Number of orders by year
@limenutt
T: Dates
1. Sales by year
2. Sales by month-year
3. Sales by a salesperson (owner)
by month-year
@limenutt
T: Advanced
1. Most popular products
2. Brands by margin percentage
3. Top 5 most profitable categories
4. Variants by base colours
5. Most popular base colours by month
6. Number of products per $50 price
bracket, sorted by max price ascending
@limenutt
Thank you!
@limenutt
Keep in touch
@limenutt

More Related Content

More from Mikhail Asavkin

AI in Robotics: Robocup 2022
AI in Robotics: Robocup 2022AI in Robotics: Robocup 2022
AI in Robotics: Robocup 2022
Mikhail Asavkin
 
State management with GraphQL [Angular Minsk, Online, 13.06.20]
State management with GraphQL [Angular Minsk, Online, 13.06.20]State management with GraphQL [Angular Minsk, Online, 13.06.20]
State management with GraphQL [Angular Minsk, Online, 13.06.20]
Mikhail Asavkin
 
What makes a great engineer [Given at MusesCodeJs in Sydney 07.03.2020]
What makes a great engineer [Given at MusesCodeJs in Sydney 07.03.2020]What makes a great engineer [Given at MusesCodeJs in Sydney 07.03.2020]
What makes a great engineer [Given at MusesCodeJs in Sydney 07.03.2020]
Mikhail Asavkin
 
Interactive Debugging [Node school Sydney 14.09.19]
Interactive Debugging [Node school Sydney 14.09.19]Interactive Debugging [Node school Sydney 14.09.19]
Interactive Debugging [Node school Sydney 14.09.19]
Mikhail Asavkin
 
Real-time GraphQL in Angular app
Real-time GraphQL in Angular appReal-time GraphQL in Angular app
Real-time GraphQL in Angular app
Mikhail Asavkin
 
Real-time GraphQL API with minimum coding and maximum benefit
 Real-time GraphQL API with minimum coding and maximum benefit Real-time GraphQL API with minimum coding and maximum benefit
Real-time GraphQL API with minimum coding and maximum benefit
Mikhail Asavkin
 

More from Mikhail Asavkin (6)

AI in Robotics: Robocup 2022
AI in Robotics: Robocup 2022AI in Robotics: Robocup 2022
AI in Robotics: Robocup 2022
 
State management with GraphQL [Angular Minsk, Online, 13.06.20]
State management with GraphQL [Angular Minsk, Online, 13.06.20]State management with GraphQL [Angular Minsk, Online, 13.06.20]
State management with GraphQL [Angular Minsk, Online, 13.06.20]
 
What makes a great engineer [Given at MusesCodeJs in Sydney 07.03.2020]
What makes a great engineer [Given at MusesCodeJs in Sydney 07.03.2020]What makes a great engineer [Given at MusesCodeJs in Sydney 07.03.2020]
What makes a great engineer [Given at MusesCodeJs in Sydney 07.03.2020]
 
Interactive Debugging [Node school Sydney 14.09.19]
Interactive Debugging [Node school Sydney 14.09.19]Interactive Debugging [Node school Sydney 14.09.19]
Interactive Debugging [Node school Sydney 14.09.19]
 
Real-time GraphQL in Angular app
Real-time GraphQL in Angular appReal-time GraphQL in Angular app
Real-time GraphQL in Angular app
 
Real-time GraphQL API with minimum coding and maximum benefit
 Real-time GraphQL API with minimum coding and maximum benefit Real-time GraphQL API with minimum coding and maximum benefit
Real-time GraphQL API with minimum coding and maximum benefit
 

Recently uploaded

socradar-q1-2024-aviation-industry-report.pdf
socradar-q1-2024-aviation-industry-report.pdfsocradar-q1-2024-aviation-industry-report.pdf
socradar-q1-2024-aviation-industry-report.pdf
SOCRadar
 
8 Best Automated Android App Testing Tool and Framework in 2024.pdf
8 Best Automated Android App Testing Tool and Framework in 2024.pdf8 Best Automated Android App Testing Tool and Framework in 2024.pdf
8 Best Automated Android App Testing Tool and Framework in 2024.pdf
kalichargn70th171
 
UI5con 2024 - Bring Your Own Design System
UI5con 2024 - Bring Your Own Design SystemUI5con 2024 - Bring Your Own Design System
UI5con 2024 - Bring Your Own Design System
Peter Muessig
 
E-commerce Development Services- Hornet Dynamics
E-commerce Development Services- Hornet DynamicsE-commerce Development Services- Hornet Dynamics
E-commerce Development Services- Hornet Dynamics
Hornet Dynamics
 
Oracle 23c New Features For DBAs and Developers.pptx
Oracle 23c New Features For DBAs and Developers.pptxOracle 23c New Features For DBAs and Developers.pptx
Oracle 23c New Features For DBAs and Developers.pptx
Remote DBA Services
 
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of CodeA Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
Aftab Hussain
 
Top Benefits of Using Salesforce Healthcare CRM for Patient Management.pdf
Top Benefits of Using Salesforce Healthcare CRM for Patient Management.pdfTop Benefits of Using Salesforce Healthcare CRM for Patient Management.pdf
Top Benefits of Using Salesforce Healthcare CRM for Patient Management.pdf
VALiNTRY360
 
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
Łukasz Chruściel
 
Hand Rolled Applicative User Validation Code Kata
Hand Rolled Applicative User ValidationCode KataHand Rolled Applicative User ValidationCode Kata
Hand Rolled Applicative User Validation Code Kata
Philip Schwarz
 
UI5con 2024 - Keynote: Latest News about UI5 and it’s Ecosystem
UI5con 2024 - Keynote: Latest News about UI5 and it’s EcosystemUI5con 2024 - Keynote: Latest News about UI5 and it’s Ecosystem
UI5con 2024 - Keynote: Latest News about UI5 and it’s Ecosystem
Peter Muessig
 
What is Master Data Management by PiLog Group
What is Master Data Management by PiLog GroupWhat is Master Data Management by PiLog Group
What is Master Data Management by PiLog Group
aymanquadri279
 
SMS API Integration in Saudi Arabia| Best SMS API Service
SMS API Integration in Saudi Arabia| Best SMS API ServiceSMS API Integration in Saudi Arabia| Best SMS API Service
SMS API Integration in Saudi Arabia| Best SMS API Service
Yara Milbes
 
Unveiling the Advantages of Agile Software Development.pdf
Unveiling the Advantages of Agile Software Development.pdfUnveiling the Advantages of Agile Software Development.pdf
Unveiling the Advantages of Agile Software Development.pdf
brainerhub1
 
OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024
OpenMetadata
 
Neo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j - Product Vision and Knowledge Graphs - GraphSummit ParisNeo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j
 
Webinar On-Demand: Using Flutter for Embedded
Webinar On-Demand: Using Flutter for EmbeddedWebinar On-Demand: Using Flutter for Embedded
Webinar On-Demand: Using Flutter for Embedded
ICS
 
E-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian Companies
E-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian CompaniesE-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian Companies
E-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian Companies
Quickdice ERP
 
Oracle Database 19c New Features for DBAs and Developers.pptx
Oracle Database 19c New Features for DBAs and Developers.pptxOracle Database 19c New Features for DBAs and Developers.pptx
Oracle Database 19c New Features for DBAs and Developers.pptx
Remote DBA Services
 
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOMLORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
lorraineandreiamcidl
 
Fundamentals of Programming and Language Processors
Fundamentals of Programming and Language ProcessorsFundamentals of Programming and Language Processors
Fundamentals of Programming and Language Processors
Rakesh Kumar R
 

Recently uploaded (20)

socradar-q1-2024-aviation-industry-report.pdf
socradar-q1-2024-aviation-industry-report.pdfsocradar-q1-2024-aviation-industry-report.pdf
socradar-q1-2024-aviation-industry-report.pdf
 
8 Best Automated Android App Testing Tool and Framework in 2024.pdf
8 Best Automated Android App Testing Tool and Framework in 2024.pdf8 Best Automated Android App Testing Tool and Framework in 2024.pdf
8 Best Automated Android App Testing Tool and Framework in 2024.pdf
 
UI5con 2024 - Bring Your Own Design System
UI5con 2024 - Bring Your Own Design SystemUI5con 2024 - Bring Your Own Design System
UI5con 2024 - Bring Your Own Design System
 
E-commerce Development Services- Hornet Dynamics
E-commerce Development Services- Hornet DynamicsE-commerce Development Services- Hornet Dynamics
E-commerce Development Services- Hornet Dynamics
 
Oracle 23c New Features For DBAs and Developers.pptx
Oracle 23c New Features For DBAs and Developers.pptxOracle 23c New Features For DBAs and Developers.pptx
Oracle 23c New Features For DBAs and Developers.pptx
 
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of CodeA Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
 
Top Benefits of Using Salesforce Healthcare CRM for Patient Management.pdf
Top Benefits of Using Salesforce Healthcare CRM for Patient Management.pdfTop Benefits of Using Salesforce Healthcare CRM for Patient Management.pdf
Top Benefits of Using Salesforce Healthcare CRM for Patient Management.pdf
 
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
 
Hand Rolled Applicative User Validation Code Kata
Hand Rolled Applicative User ValidationCode KataHand Rolled Applicative User ValidationCode Kata
Hand Rolled Applicative User Validation Code Kata
 
UI5con 2024 - Keynote: Latest News about UI5 and it’s Ecosystem
UI5con 2024 - Keynote: Latest News about UI5 and it’s EcosystemUI5con 2024 - Keynote: Latest News about UI5 and it’s Ecosystem
UI5con 2024 - Keynote: Latest News about UI5 and it’s Ecosystem
 
What is Master Data Management by PiLog Group
What is Master Data Management by PiLog GroupWhat is Master Data Management by PiLog Group
What is Master Data Management by PiLog Group
 
SMS API Integration in Saudi Arabia| Best SMS API Service
SMS API Integration in Saudi Arabia| Best SMS API ServiceSMS API Integration in Saudi Arabia| Best SMS API Service
SMS API Integration in Saudi Arabia| Best SMS API Service
 
Unveiling the Advantages of Agile Software Development.pdf
Unveiling the Advantages of Agile Software Development.pdfUnveiling the Advantages of Agile Software Development.pdf
Unveiling the Advantages of Agile Software Development.pdf
 
OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024
 
Neo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j - Product Vision and Knowledge Graphs - GraphSummit ParisNeo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
 
Webinar On-Demand: Using Flutter for Embedded
Webinar On-Demand: Using Flutter for EmbeddedWebinar On-Demand: Using Flutter for Embedded
Webinar On-Demand: Using Flutter for Embedded
 
E-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian Companies
E-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian CompaniesE-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian Companies
E-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian Companies
 
Oracle Database 19c New Features for DBAs and Developers.pptx
Oracle Database 19c New Features for DBAs and Developers.pptxOracle Database 19c New Features for DBAs and Developers.pptx
Oracle Database 19c New Features for DBAs and Developers.pptx
 
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOMLORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
 
Fundamentals of Programming and Language Processors
Fundamentals of Programming and Language ProcessorsFundamentals of Programming and Language Processors
Fundamentals of Programming and Language Processors
 

Workshop mongo aggregations [musescodejs 16.11.19]