Esercizi su query avanzate in MongoDB utilizzando la libreria Python pymongo. Gli esercizi coprono vari aspetti delle query avanzate, inclusi aggregazioni complesse, subquery, ricerche full-text e utilizzo di indici geospaziali.
Esercizio 1: Aggregazione con Raggruppamento e Ordinamento
Utilizzare l'aggregazione per raggruppare i dipendenti per dipartimento e ordinare i risultati per numero di dipendenti in ogni dipartimento.
Esercizio 2: Aggregazione con Filtraggio e Proiezione
Utilizzare l'aggregazione per filtrare i dipendenti con più di 5 anni di esperienza e proiettare solo i campi "name" e "position".
Esercizio 3: Aggregazione con Calcolo di Campo
Utilizzare l'aggregazione per aggiungere un campo calcolato "total_compensation" che è la somma di "salary" e "bonus".
Esercizio 4: Ricerca Full-Text
Eseguire una ricerca full-text sui documenti nella collezione "articles" utilizzando pymongo. Trovare tutti i documenti che contengono la parola "MongoDB".
Esercizio 5: Query Geospaziale
Eseguire una query geospaziale per trovare tutti i luoghi entro un raggio di 5 km da un punto specifico.
Esercizio 6: Utilizzo di Subquery
Utilizzare una subquery per trovare tutti i dipendenti che hanno completato più di 3 progetti. Prima trovare gli ID dei dipendenti che hanno completato più di 3 progetti, poi utilizzare questi ID per trovare i dettagli dei dipendenti.
Esercizio 7: Aggregazione con Condizioni Multiple
Utilizzare l'aggregazione per trovare i dipendenti che lavorano nel dipartimento "Sales" e hanno un salario maggiore di 50000. Proiettare solo i campi "name" e "salary".
Esercizio 8: Aggregazione con Unwind
Utilizzare l'aggregazione con l'operatore `$unwind` per de-normalizzare un array di documenti. Supponiamo che ogni documento "order" contenga un array "items". Creare una query che estrae ogni elemento dell'array "items" come un documento separato.