Panoramica
- Discuteremo di come puoi controllare un Banca datiUn database è un insieme organizzato di informazioni che consente di archiviare, Gestisci e recupera i dati in modo efficiente. Utilizzato in varie applicazioni, Dai sistemi aziendali alle piattaforme online, I database possono essere relazionali o non relazionali. Una progettazione corretta è fondamentale per ottimizzare le prestazioni e garantire l'integrità delle informazioni, facilitando così il processo decisionale informato in diversi contesti.... MongoDB utilizzando la libreria PyMongo.
- Tratteremo le operazioni di aggregazione di base in MongoDB.
introduzione
Dopo l'espansione globale di Internet, stiamo generando dati a un ritmo senza precedenti ora. Perché condurre qualsiasi tipo di analisi ci richiederebbe di raccogliere / consultiamo i dati necessari dal database, è estremamente importante scegliere lo strumento giusto per consultare i dati. Di conseguenza, non possiamo immaginare di usare SQL per lavorare con questo volume di dati, poiché ogni consulenza sarà costosa.
È proprio qui che entra in gioco MongoDB. MongoDB è un database non strutturato che memorizza i dati sotto forma di documenti. Cosa c'è di più, MongoDB è in grado di gestire grandi volumi di dati in modo molto efficiente ed è il Banca dati NoSQLI database NoSQL sono sistemi di gestione dei dati che si caratterizzano per la loro flessibilità e scalabilità. A differenza dei database relazionali, Utilizzare modelli di dati non strutturati, come documenti, chiave-valore o grafica. Sono ideali per le applicazioni che richiedono la gestione di grandi volumi di informazioni e un'elevata disponibilità, come nel caso dei social network o dei servizi cloud. La sua popolarità è cresciuta in... I più utilizzati, in quanto offre un ricco linguaggio di query e un accesso rapido e flessibile ai dati.
In questo articolo, vedremo diversi esempi di come interrogare un database MongoDB usando PyMongo. Cosa c'è di più, Vedremo come utilizzare il Operatori di confrontoGli operatori di confronto sono strumenti fondamentali in programmazione e in matematica che permettono di valutare le relazioni tra valori. Questi includono operatori come maggiore di (>), meno di (<), uguale a (==) e diverso da (!=). La sua funzione principale è quella di restituire un valore booleano, vale a dire, vero o falso, facilitando il processo decisionale negli algoritmi e la manipolazione dei dati in strutture di controllo come condizionali e loop.... e il Operatori logiciGli operatori logici sono simboli o parole chiave che consentono di combinare e valutare espressioni booleane in programmazione e matematica. I più comuni sono E, OPPURE e NON. Questi operatori sono fondamentali per lo sviluppo di algoritmi e il processo decisionale nei sistemi informatici, facilitare l'esecuzione di condizioni complesse. Il suo corretto utilizzo ottimizza il flusso di controllo e migliora l'efficienza nella risoluzione dei problemi...., nozioni di base sulle espressioni regolari e sulle pipeline di aggregazione.
Questo articolo è una continuazione del tutorial MongoDB in Python per principianti, dove copriamo le sfide dei database non strutturati, Operazioni di base di MongoDB e passaggi di installazione. Quindi, se sei un principiante assoluto su MongoDB, Ti consiglierei di leggere prima quell'articolo.
Sommario
- Cos'è PyMongo?
- Fasi di installazione
- Inserisci i dati nel database
- Consulta la banca dati
- Filtro basato sul campo
- Filtro basato su operatori di confronto
- Filtro basato su operatori logici
- Espressioni regolari
- Tubi di aggregazione
- Note finali
Cos'è PyMongo?
PyMongo è una libreria Python che ci permette di connetterci con MongoDB. Cosa c'è di più, questo è il modo più consigliato per lavorare con MongoDB e Python.
Cosa c'è di più, Abbiamo scelto Python per interagire con MongoDB perché è uno dei linguaggi più utilizzati e notevolmente più potenti per Scienza dei dati. PyMongo ci permette di recuperare i dati con una sintassi simile a quella di un dizionario.
Nel caso tu sia un principiante in Python, Ti consiglio di iscriverti a questo corso gratuito: Introduzione a Python.
Fasi di installazione
L'installazione di PyMongo è semplice e diretta. Qui, immagino che tu abbia già Python 3 e MongoDB installato. Il seguente comando ti aiuterà a installare PyMongo:
pip3 installare pymongo
Inserire i dati nel database
Ora impostiamo le cose prima di interrogare un database MongoDB usando PyMongo. Per prima cosa inseriremo i dati nel database. I seguenti passaggi ti aiuteranno in questo:
Importare le librerie e connettersi al client mongo
Avviare il server MongoDB sul computer. Immagino che un file sia in esecuzione su localhost: 27017.
Iniziamo importando alcune delle librerie che useremo. Per impostazione predefinita, Server MongoDB in esecuzione sulla porta 27017 dalla macchina locale. Dopo, ci collegheremo al client MongoDB usando il Pymongo Biblioteca.
Dopo, ottieni l'istanza db da sample_db db. Nel caso non ci fosse, MongoDB ne creerà uno per te.
Crea le raccolte dai file JSON
Utilizzeremo i dati di un'azienda di consegna di cibo che opera in più città. Cosa c'è di più, hanno diversi centri logistici in queste città per inviare ordini di cibo ai loro clienti. Puoi scaricare il dati e codice qui.
- richiesta_settimanale:
- ID: ID univoco per ogni documento
- settimana: Numero della settimana
- center_id: ID univoco per il centro logistico
- id_cibo: ID cibo univoco
- checkout_price: Prezzo finale con sconto, tasse e spese di spedizione
- prezzo base: Prezzo base del pasto
- emailer_for_promotion: E-mail inviata per la promozione del cibo
- homepage_featured: Cibo in primo piano nella home page.
- num_ordini: (Destino) Conteggio ordini
- food_info:
- id_cibo: ID univoco per il cibo
- categoria: Tipo di cibo (bevande / spuntini / zuppe….)
- cucina: Cucina alimentare (India / italiana /…)
Quindi creeremo due raccolte nel database sample_db:
- richiesta_settimanale:
Inserisci i dati nelle raccolte
Ora, I dati che abbiamo sono in JSONJSON, o Notazione degli oggetti JavaScript, Si tratta di un formato di scambio dati leggero e facile da leggere e scrivere per gli esseri umani, e facile da analizzare e generare per le macchine. Viene comunemente utilizzato nelle applicazioni Web per inviare e ricevere informazioni tra un server e un client. La sua struttura si basa su coppie chiave-valore, rendendolo versatile e ampiamente adottato nello sviluppo di software... Quindi otterremo l'istanza della raccolta, Leggeremo il file di dati e inseriremo i dati utilizzando il tasto inserire_molti funzione.
Finalmente, avere 456548 documenti nella raccolta settimanale della domanda e 51 documenti nella raccolta di informazioni sugli alimenti. Ora, Diamo un'occhiata a un documento di ciascuna di queste raccolte.
collezione_settimanale
meal_info_collection
Ora, i nostri dati sono pronti. Andiamo a consultare questo database.
Consulta la banca dati
Possiamo interrogare un database MongoDB usando PyMonfo con il trova funzione per ottenere tutti i risultati che soddisfano la condizione data e utilizzando anche il trova uno funzione che restituirà solo un risultato che soddisfa la condizione.
La seguente è la sintassi di find e find_one:
tua_collezione.trova( {<< interrogazione >>} , { << campi>>} )
È possibile interrogare il database utilizzando le seguenti tecniche di filtraggio:
Filtro basato sul campo
Ad esempio, hai centinaia di campi e vuoi vederne solo alcuni. Puoi farlo semplicemente inserendo tutti i nomi dei campi richiesti con il valore 1. Ad esempio:
In secondo luogo, se vuoi eliminare alcuni campi solo dall'intero documento, puoi mettere i nomi dei campi uguali a 0. Perciò, solo quei campi saranno esclusi. Nota che non puoi usare una combinazione di 1 e 0 per ottenere i campi. O tutti devono essere uno o tutti devono essere zero.
Filtra con una condizione
Ora, in questa sezione, forniremo una condizione nelle prime parentesi graffe e campi da scartare nella seconda. Di conseguenza, restituirà il primo documento con center_id uguale 55 e id_pasto è uguale a 1885 e scarterà anche i campi _id e week.
Filtro basato su operatori di confronto
I seguenti sono i nove operatori di confronto in MongoDB.
NOME DESCRIZIONE $eq
Corrisponde a valori uguali a un valore specificato. $gt
Corrisponde a valori maggiori di un valore specificato. $gte
Corrisponde a tutti i valori che sono maggiori o uguali a un valore specificato. $in
Corrisponde a uno qualsiasi dei valori specificati in un array. $lt
Corrisponde a tutti i valori inferiori a un valore specificato. $lte
Corrisponde a tutti i valori inferiori o uguali a un valore specificato. $ne
Corrisponde a tutti i valori che non sono uguali a un valore specificato. $nin
Non corrisponderà a nessuno dei valori specificati in un array. Di seguito sono riportati alcuni esempi dell'uso di questi operatori di confronto:
Uguale a e non uguale a
Troveremo tutti i documenti in cui center_id è uguale a 55 e homepage_featured non è uguale a 0. Come utilizzeremo la funzione di ricerca, restituirà il cursore per quel comando. Cosa c'è di più, usa un ciclo for per scorrere i risultati della query.
In lista e non in lista
Ad esempio, deve corrispondere a un elemento con più elementi. Quindi, invece di usare l'operatore $ eq più volte, possiamo usare l'operatore $ in. Cercheremo di trovare tutti i documenti in cui si trova center_id 24 tu 11.
Dopo, cerchiamo tutti i documenti in cui center_id non è presente nell'elenco specificato. La seguente query restituirà tutti i documenti in cui center_id non è 24 e nemmeno 11.
Minore e Maggiore di
Ora, troviamo tutti i documenti dove si trova center_id 55 e checkout_price è maggiore di 100 e meno di 200. Usa la seguente sintassi per questo-
Filtro basato su operatore logico
NOME DESCRIZIONE $and
Unirà le clausole di query con una logica. AND
e restituisce tutti i documenti che soddisfano entrambe le condizioni.$not
Invertirà l'effetto di una query e restituirà documenti che non lo sono no corrisponde all'espressione della query. $nor
Unirà le clausole di query con una logica. NOR
e restituire tutti i documenti non conformi alle clausole.$or
Unirà le clausole di query con una logica. OR
e restituire tutti i documenti che soddisfano le condizioni di una qualsiasi delle clausole.Gli esempi seguenti illustrano l'uso degli operatori logici:
E operatore
La seguente query restituirà tutti i documenti in cui center_id è uguale 11 e anche meal_id non è uguale a 1778. Le subquery per e L'operatore inserirà una lista.
Operatore OR
La seguente query restituirà tutti i documenti in cui center_id è uguale 11 o id_pasto es 1207 oh 2707. Cosa c'è di più, le subquery per il oh L'operatore inserirà una lista.
Filtra con espressioni regolari
Le espressioni regolari sono molto utili quando hai campi di testo e vuoi cercare documenti con uno schema specifico. Nel caso in cui desideri saperne di più sulle espressioni regolari, Ti consiglio di leggere questo articolo: Tutorial per principianti per le espressioni regolari in Python.
Può essere utilizzato con operatore. $ regex e possiamo fornire valore all'operatore in modo che il modello regex sia matc. Useremo la raccolta meal_info per questa query e poi troveremo i documenti in cui il campo cucina inizia con carattere C.
Facciamo un altro esempio di espressioni regolari. Scopriremo tutti i documenti in cui la categoria parte dal personaggio. “S” e la cucina finisce con “Ian“.
Tubi di aggregazione
La MongoDB Aggregation Pipeline fornisce un framework per eseguire una serie di trasformazioni di dati su un set di dati. Quella che segue è la sua sintassi:
tua_collezione.aggregato( [ { <fase 1> }, { <Fase 2> },.. ] )
La prima fase prende l'intera serie di documenti come input e, da li, ogni fase successiva prende il set di risultati della trasformazione precedente come input per la fase successiva e produce l'output.
Ci sono in giro 10 trasformazioni disponibili nell'aggregato MongoDB, di cui vedremo $ incontro e $ gruppo in questo articolo. Discuteremo in dettaglio ciascuna delle trasformazioni nel prossimo articolo MongoDB.
Ad esempio, Nella prima fase, abbineremo i documenti in cui center_id è uguale 11 e nella fase successiva, conterà il numero di documenti con center_id uguale a 11. Si prega di notare che abbiamo assegnato il $ contare operatore uguale valore righe_totali nella seconda fase questo è il nome del campo che vogliamo nell'output.
Ora, facciamo un altro esempio in cui il primo stadio è lo stesso di prima, vale a dire, center_id è uguale a 11 e nella seconda fase, vogliamo calcolare la media del campo num_orders per center_id 11 e gli unici meal_ids per center_id 11.
Note finali
L'insondabile quantità di dati che viene generata oggi rende necessario trovare alternative migliori come questa per consultare i dati. Per riassumere, in questo articolo, abbiamo imparato come interrogare un database MongoDB usando PyMongo. Cosa c'è di più, abbiamo capito come applicare vari filtri a seconda della situazione richiesta.
Nel caso in cui desideri maggiori informazioni sulla query dei dati, Consiglio il seguente corso: Structured Query Language (SQL) per la scienza dei dati
Nel prossimo articolo, analizzeremo in dettaglio le pipeline di aggregazione.
Ti incoraggio a provare le cose da solo e a condividere le tue esperienze nella sezione commenti. Cosa c'è di più, se hai un problema con uno dei concetti di cui sopra, sentiti libero di chiedermelo nei commenti qui sotto.