‫Docente: L'interrogazione dei dati in un database
‫è una delle operazioni più importanti che abbiamo nei database.
‫Quindi, diamo ora un'occhiata a un paio di operatori di
‫query in MongoDB, iniziando con alcuni semplici
‫e poi passando ad alcune query davvero complesse.
‫E, per cominciare, diamoci un po' di spazio qui.
‫E quindi, lo sai già, il modo più
‫semplice per interrogare praticamente tutti i documenti
‫in una certa raccolta è usare solo trova
‫senza passare nulla lì dentro.
‫Quindi, questo è quello che abbiamo fatto fino a questo punto.
‫E quindi, ci dà semplicemente questo risultato
‫con tutti i
‫documenti che sono in una certa
‫raccolta sostanzialmente senza alcun criterio di ricerca.
‫Ma ora diciamo che in realtà vogliamo solo un tour e
‫ne conosciamo già il nome.
‫E così, possiamo cercare
‫quel tour usando il nome che conosciamo.
‫E così, noi db. tour e, ancora,
‫trovare.
‫Ma, questa volta, passeremo un oggetto filtro.
‫Quindi, di nuovo, abbiamo bisogno di un oggetto qui.
‫E così, inizi a vedere ora che
‫in MongoDB, davvero tutto funziona con gli oggetti.
‫E questo sarà ancora più evidente un po' più avanti
‫in questa lezione.
‫Quindi, all'interno di questo oggetto, passiamo al filtro.
‫Quindi, fondamentalmente i
‫criteri di ricerca che vogliamo cercare.
‫Quindi, impostiamo semplicemente il nome sul nome del
‫tour che vogliamo cercare.
‫Quindi, diciamo The Forest Hiker.
‫E in effetti è così.
‫Quindi, questo è il nostro criterio di ricerca o il filtro di ricerca.
‫E, se fossimo
‫tornati ora, avremmo solo questo tour in
‫cui il nome corrisponde esattamente a quello in cui siamo passati.
‫E, ovviamente, potremmo fare lo stesso per qualsiasi altra cosa.
‫Ad esempio, per la
‫difficoltà, potremmo cercare tour che hanno una
‫difficoltà facile.
‫Quindi, difficoltà e facile.
‫Chiudi l'oggetto, chiudi la funzione.
‫E così, otteniamo tutti i tour in cui la difficoltà è facile.
‫In questo momento, c'è solo un tour,
‫ma se avessimo più tour con difficoltà
‫impostata su
‫facile, allora, ovviamente, restituirebbe tutti questi documenti.
‫Quindi, questo è il
‫modo più semplice per cercare documenti.
‫Passiamo ora al livello successivo
‫utilizzando alcuni operatori di query speciali.
‫E quello che voglio fare è cercare i tour
‫che hanno un prezzo inferiore a 500.
‫E il modo in cui funziona è così.
‫Quindi, usiamo sempre db. Il nome della raccolta. trovare.
‫E poi, ancora, o filtra oggetto.
‫E quindi, ricorda, voglio cercare i prezzi,
‫quindi dico prezzo.
‫E ora voglio tutti i tour con un prezzo inferiore a 500.
‫Quindi, come lo faccio?
‫Bene, devo usare l'operatore less than
‫e funziona così.
‫Dobbiamo definire ancora un nuovo
‫oggetto in cui impostiamo la proprietà lte su 500,
‫quindi chiudiamo
‫quell'oggetto, quindi chiudiamo il primo oggetto prezzo
‫e quindi chiudiamo la funzione.
‫Quindi, sembra molto strano, lo so, ma
‫è così che usiamo gli operatori di query in MongoDB.
‫Quindi, ancora una volta, lte sta per less than perché
‫è quello che stiamo cercando.
‫Dove il prezzo è inferiore a 500.
‫E questo segno speciale qui è riservato in
‫MongoDB ai suoi operatori.
‫Quindi, ogni volta che vedi questo simbolo del dollaro qui in
‫MongoDB, sai che è un operatore Mongo.
‫Quindi, la parte più strana
‫qui è probabilmente che dobbiamo farlo all'interno di
‫un nuovo oggetto, ma se ci pensi, in realtà è
‫davvero l'unico modo per specificare che il prezzo non dovrebbe essere semplicemente
‫500, ma qualcos'altro.
‫Quindi, dobbiamo impostare il prezzo su qualcosa di diverso da 500.
‫E il modo migliore
‫è davvero usare un altro oggetto lì dentro.
‫Quindi, è esattamente così che funziona MongoDB.
‫Quindi, proviamolo ora, premi Invio.
‫E, in effetti, otteniamo i
‫nostri due documenti in cui la proprietà del prezzo è inferiore a 500.
‫Ottimo, il prossimo passo è
‫cercare due criteri di ricerca contemporaneamente.
‫Quindi, quello che voglio fare dopo è cercare documenti
‫che hanno il prezzo minore o uguale a 500, che
‫è quello che avevamo già qui,
‫ma anche, allo stesso tempo, il punteggio maggiore o uguale
‫a 4. 8.
‫E quindi, questo dovrebbe darci solo questo tour qui.
‫Quindi, solo questo
‫perché questo è l'unico che ha il prezzo inferiore a 500
‫e il punteggio uguale o superiore a 4. 8.
‫Quindi sono 4. 8 e quindi uno
‫è quello che dovrebbe corrispondere alla nostra query.
‫Quindi, chiariamolo per togliere un po' di confusione.
‫Ora, voglio questo risultato qui
‫in modo che possiamo confrontarlo con il prossimo risultato.
‫E quindi, scriviamo ora la query che ho appena descritto.
‫Quindi, trova e, di nuovo, questo qui sarà
‫lo stesso.
‫Quindi, vogliamo che il prezzo sia inferiore o uguale a 500.
‫Oppure, potremmo semplicemente dire meno di 500.
‫Quindi, lte è minore o uguale e lt è semplicemente minore di.
‫Quindi, questa è la prima parte, il prezzo inferiore a 500.
‫E, allo stesso tempo, vogliamo che il punteggio sia maggiore o
‫uguale a 4. 8.
‫E questo è facile.
‫Tutto quello che dobbiamo fare è specificare un secondo campo
‫nel nostro oggetto filtro.
‫Quindi, prima il prezzo e ora la valutazione.
‫Quindi, vogliamo che la valutazione
‫sia e probabilmente puoi
‫indovinarla, maggiore o uguale a 4. 8.
‫Ora chiudi questo oggetto filtro e chiudi la funzione.
‫Quindi, proviamolo.
‫E, in effetti, ci dà il risultato che ci aspettavamo.
‫Quindi, l'unico documento in cui entrambi i criteri di ricerca qui
‫sono veri allo stesso tempo.
‫Quindi, solo per ricapitolare, quando vogliamo
‫cercare due criteri contemporaneamente, che
‫fondamentalmente è una query e, quindi prezzo
‫inferiore a 500 e valutazione maggiore o uguale a
‫4. 8.
‫Bene, l'unica cosa che
‫dobbiamo fare è specificare due campi nell'oggetto filtro.
‫E, so che questo sembra piuttosto confuso.
‫Mi sono sentito esattamente allo stesso modo quando stavo imparando queste
‫cose, ma spero che tu
‫possa ancora seguirmi in modo che ora possiamo effettivamente portarlo ancora un livello oltre.
‫Quindi, qui, abbiamo fatto un'interrogazione.
‫Quindi, interrogando i documenti in cui queste
‫due condizioni sono entrambe vere, ma ora eseguiamo un'interrogazione o.
‫Quindi, fondamentalmente cercando tutti i documenti in
‫cui questa parte qui è vera o
‫questa parte è vera.
‫Quindi, db. tour. trova e
‫chiudiamolo qui perché
‫questo sarà ancora più confuso.
‫Quindi, vogliamo fare una query o e il modo in
‫cui funziona con gli operatori MongoDB è così.
‫Diciamo o e poi qui, specifichiamo un array.
‫E, in questo array, metteremo quindi le due condizioni in cui
‫vogliamo che una di esse sia vera.
‫Quindi, di nuovo, so che sembra
‫confuso, ma scriviamolo ora e poi lo spiegherò di nuovo quando
‫lo stiamo già facendo.
‫Quindi, la prima condizione è che il
‫prezzo dovrebbe essere inferiore a 500.
‫Quindi, sostanzialmente come prima.
‫Quindi, questo è il primo oggetto.
‫Quindi, tutto questo, quindi la prima condizione,
‫fondamentalmente il primo filtro, e
‫poi il secondo.
‫Quindi, il punteggio dovrebbe essere, proprio come prima,
‫maggiore o uguale a 4. 8.
‫Chiudi questo e chiudi questo.
‫E così, in realtà è già tutto.
‫Quindi, di nuovo, per ricapitolare qui, iniziamo con l'operatore o e
‫l'operatore o accetta una serie di condizioni.
‫Quindi, ecco perché creiamo questo array qui e
‫questo array conterrà quindi un oggetto
‫per ciascuno dei nostri filtri in pratica.
‫Quindi, vogliamo che questo sia vero
‫o questo.
‫Quindi, proviamo a vedere quali saranno i nostri risultati.
‫E così, in realtà otteniamo tutti e tre i tour.
‫E quindi, analizziamo perché è così.
‫Quindi, il primo ha un prezzo inferiore a 500.
‫E quindi, ecco perché è stato incluso qui.
‫Non ha un punteggio maggiore o uguale a 4. 8, quindi
‫sono solo 4. 7, ma poiché stiamo eseguendo una
‫query o qui, solo una delle condizioni deve essere vera.
‫Ecco perché questo documento qui è stato selezionato
‫ed è incluso nel nostro output.
‫Successivamente, anche questo ha il prezzo inferiore o uguale a 500 e, allo
‫stesso tempo, ha il punteggio maggiore o uguale
‫a 4. 8.
‫E così, è stato incluso in realtà
‫perché entrambi sono veri.
‫Quindi, l'ultimo non ha il prezzo inferiore a 500, ma ha il rating
‫maggiore o uguale a 4. 8.
‫E così, di nuovo, una delle due condizioni è vera
‫e poiché stiamo facendo una query o, anche
‫questo tour è stato incluso.
‫Quindi, chiariamo questo e solo un
‫altro, che sarà più o meno lo stesso.
‫Passerò semplicemente da minore di a maggiore di.
‫E quello che voglio che tu
‫faccia ora è indovinare l'output di questo in
‫base al risultato precedente.
‫Quindi, puoi indovinare quale sarà il risultato?
‫Quindi, diamo un'occhiata.
‫E così, adesso, infatti, non abbiamo più tutti e tre i tour, ma
‫solo il secondo e il terzo perché, ricordiamo,
‫il primo tour aveva il prezzo
‫inferiore a 500 e anche il rating inferiore
‫a 4. 8.
‫E così, nessuna delle condizioni si applicava e
‫quindi non è più inclusa.
‫Solo il secondo e il terzo,
‫che ora ha anche il prezzo non superiore a 500, ma ha il
‫voto di 4. 8 e
‫quindi è ancora incluso.
‫E, l'ultimo, ovviamente, ha tutto vero e
‫quindi, ovviamente, è anche qui.
‫Solo un'altra cosa che volevo mostrarti
‫qui è che oltre al nostro oggetto filtro, quindi
‫questo, possiamo anche passare un oggetto per la proiezione.
‫Quindi, il significato di proiezione è
‫che vogliamo semplicemente selezionare alcuni dei campi nell'output.
‫Quindi, lascia che te lo mostri ed è molto semplice.
‫Tutto quello che dobbiamo fare è, ad esempio, dire nome uguale a uno.
‫Quindi, ciò significa che vogliamo solo che il
‫nome sia nell'output ed è per questo che impostiamo name su uno.
‫Tutti gli altri non appariranno in questo caso.
‫Quindi, lascia che te lo mostri.
‫E, infatti, abbiamo solo il nome
‫e non più tutte queste altre proprietà.
‫E questo può essere molto utile in alcuni casi.
‫L'idea, ovviamente, si presenta anche, ma
‫c'è sempre.
‫Non c'è modo di rimuoverlo.
‫Va bene, d'accordo.
‫Quindi, penso che l'obiettivo principale di questa lezione sia ora
‫raggiunto, che era fondamentalmente quello
‫di farti familiarizzare con il modo in
‫cui eseguiamo query in MongoDB e mostrarti anche questi complessi operatori MongoDB
‫che abbiamo qui.
‫Per qualche motivo, non posso selezionarlo,
‫ma sai cosa intendo.
‫Quindi, abbiamo più di,
‫abbiamo o e abbiamo ancora un sacco
‫di altri operatori.
‫Quindi, questa è solo
‫la superficie, ma durante il resto del
‫corso, ovviamente, conoscerai un paio di altri operatori.
‫Quindi, questo è solo per
‫familiarizzare, iniziare con le query in MongoDB.
‫E, penso che in questa conferenza, l'abbiamo fatto con successo.