‫Istruttore: Ora implementiamo l'ordinamento dei risultati.
‫Per consentire ai nostri utenti di ordinare i risultati in
‫base a un determinato campo.
‫Quindi, diamo ora un'occhiata a tutti i nostri risultati qui per ora.
‫Va bene, quindi diciamo che in
‫realtà vogliamo ordinare questi risultati, diciamo per prezzo.
‫Ok, quindi inizia con il prezzo più basso e
‫poi sale fino al prezzo più alto.
‫Va bene, quindi abbiamo tutti i tipi di prezzi.
‫397, 497, 1197, 1497, 997.
‫Abbiamo anche quasi 3.000 qui.
‫Quindi 1497 e quindi non sono realmente in ordine, quindi
‫consentiamo all'utente di ordinare sostanzialmente questi risultati in base a un campo che
‫può essere passato utilizzando la stringa di query.
‫Quindi diciamo che vogliamo ordinare per prezzo.
‫Va bene.
‫Quindi, se eseguiamo questo ora, ovviamente,
‫non accadrà nulla, mostrerà ancora
‫gli stessi esattamente nove risultati e nello stesso ordine, perché
‫prima nell'ultima lezione, abbiamo filtrato fondamentalmente questo campo di ordinamento.
‫Destra?
‫E quindi ora andiamo avanti e usiamolo.
‫Va bene?
‫Quindi, ricorda qui come abbiamo creato l'oggetto query e quindi
‫escluso il campo di ordinamento qui,
‫in modo che non inquinasse il nostro filtro, giusto?
‫Ma ora ne abbiamo davvero bisogno e quindi usiamolo.
‫Quindi, la terza caratteristica qui è l'ordinamento.
‫O in realtà, beh,
‫questo è il secondo, quindi chiamiamolo solo 1A e 1B.
‫Va bene?
‫Quindi, diciamo che se esiste effettivamente un sort, sort
‫req. interrogazione. ordinare.
‫Ok, e lo vedi qui sotto.
‫Ora è sparito a causa di questo errore qui, ma comunque.
‫Dalla nostra ultima richiesta abbiamo
‫ottenuto, ovviamente, qui c'è un oggetto query
‫e quindi lì dentro avevamo la proprietà sort, va bene?
‫E se c'è una proprietà
‫di ordinamento, beh, significa
‫che vogliamo effettivamente ordinare i risultati in base al valore.
‫Ora una cosa veloce che
‫dobbiamo fare è cambiare questa query di
‫variabile qui da una costante a una variabile normale.
‫Quindi lascia, ok?
‫Perché ora in realtà vogliamo concatenare qualcosa
‫a questa query.
‫Quindi, la nuova query sarà query. ordinare.
‫E vogliamo ordinarlo per req. interrogazione. ordinare.
‫Va bene, perché quello sarà il valore del campo,
‫quindi in questo caso prezzo,
‫e Mongoose ordinerà automaticamente il risultato in
‫base al prezzo.
‫E ora nel caso ve
‫lo stiate chiedendo, perché funziona in questo modo, quindi perché
‫l'abbiamo fatto qui, ricordate solo di cosa abbiamo parlato nelle ultime lezioni.
‫Quindi, ricorda come questo tour. trovare qui
‫restituirà una query, giusto?
‫E quindi abbiamo archiviato quell'oggetto query qui in
‫questa variabile, in modo che in
‫seguito possiamo continuare a concatenare più metodi ad esso.
‫Quindi più di questi metodi sono
‫disponibili su tutti i documenti creati tramite la classe query.
‫Ok, te lo ricordi?
‫Penso che ne abbiamo parlato in modo approfondito due conferenze fa.
‫Quindi, nel caso in cui questo sia ancora un po'
‫confuso per te,
‫allora torna lì o puoi anche dare un'occhiata alla documentazione, va bene?
‫Ora proviamolo davvero.
‫Quindi l'ordinamento è ancora impostato sul prezzo.
‫Quindi lo mando ora.
‫Diamo un'occhiata al risultato.
‫E in effetti iniziamo con il prezzo più basso,
‫ma penso che lo avessimo già avuto prima.
‫Quindi iniziamo con 397, poi 497, poi 997, 1197, 1497,
‫e vedete che i prezzi continuano ad aumentare.
‫Quindi 1997, 2997.
‫E quindi sì, in effetti, ora sono ordinati.
‫Va bene?
‫Quindi li abbiamo ordinati in base al prezzo in ordine crescente.
‫Ma possiamo anche ordinarli in ordine decrescente.
‫È molto semplice.
‫Tutto quello che dobbiamo fare è impostare come meno qui.
‫Quindi, meno il prezzo e Mongoose li
‫ordineranno automaticamente nell'altro ordine.
‫Quindi, in ordine decrescente.
‫Quindi proviamo anche quello.
‫E quindi ora dovremmo iniziare con, sì,
‫esattamente, con questo.
‫Quindi, il primo è
‫ora il più alto e l'ultimo è il 397.
‫Freddo.
‫Ma possiamo effettivamente fare un ulteriore passo avanti,
‫perché qui abbiamo molti casi che hanno lo stesso prezzo.
‫Ma come sono questi risultati con lo stesso prezzo
‫quindi ordinati al loro interno?
‫Quindi diciamo che abbiamo questo con questo prezzo
‫e poi questo con lo stesso prezzo.
‫Allora perché questo appare prima del secondo?
‫La stessa cosa con questo qui forse,
‫oh in realtà no.
‫Quindi questo è solo l'unico con 1997.
‫Ma poi di nuovo qui abbiamo questi due con lo stesso prezzo.
‫Abbiamo, ok, sono tutti diversi.
‫Ok, questi sono tutti diversi.
‫Ma vogliamo classificarli, sostanzialmente, secondo
‫un secondo criterio.
‫Quindi, in caso di parità, vogliamo avere
‫un secondo campo in base
‫al quale possiamo ordinare dove il primo è lo stesso.
‫Quindi in questo caso il prezzo.
‫Quindi in Mongoose è abbastanza facile, e
‫lascia che te lo mostri qui come commento, ad esempio.
‫Quindi in Mongoose diremmo solo sort e poi in
‫questo momento abbiamo il prezzo, quindi lo abbiamo proprio così,
‫ma poi in
‫Mongoose tutto ciò che dobbiamo
‫fare è aggiungere un altro nome di campo alla stringa.
‫Quindi, ad esempio, valutazione media.
‫O penso che siano valutazioni.
‫Ok, e quindi ora vogliamo passare anche questo campo qui al
‫nostro tipo.
‫Va bene?
‫Ora non possiamo lasciare uno spazio qui nell'URL
‫e quindi aggiungeremo una virgola.
‫Va bene?
‫Quindi vogliamo ordinare prima per prezzo
‫e poi come secondo criterio, anche per media delle valutazioni.
‫Va bene?
‫E quindi ora tutto
‫ciò che dobbiamo fare è sostanzialmente sostituire questa virgola qui con uno spazio.
‫Va bene?
‫E, naturalmente, potremmo avere ancora
‫più campi in base ai quali ordinare.
‫Va bene?
‫Ma per ora lasciamolo
‫così e implementiamolo molto rapidamente nel nostro codice.
‫Va bene?
‫E in realtà mi permetta di creare una nuova variabile qui.
‫Chiamiamolo sort by.
‫E quindi abbiamo req. interrogazione. sort e quello
‫che faremo ora è dividerlo per la virgola.
‫Quindi dividi la stringa per la virgola, e quindi questo restituirà un array
‫di tutte le stringhe, quindi tutti i
‫nomi dei campi,
‫e poi tutto ciò che dobbiamo fare è rimetterlo
‫insieme usando join e come stringa di join che usiamo Uno spazio.
‫Va bene?
‫E così solo per essere sicuri che sia corretto.
‫Consolle. log, sort by, e poi
‫ovviamente qui vogliamo usare quel sort by variabile.
‫Va bene?
‫Quindi diamo un'occhiata a questo.
‫E.
‫Quindi 4. 7 qui, e anche l'altro ha 4. 7, va bene?
‫E quindi andiamo avanti e utilizziamo la nostra API per
‫modificare questa media delle valutazioni qui.
‫Va bene?
‫Quindi, proprio come un
‫esperimento divertente, copiamo questo ID qui, quindi aggiorniamo il tour, e quindi
‫veniamo qui al corpo, e quindi voglio aggiornare
‫la media delle valutazioni a 4. 9.
‫Va bene?
‫Mandiamolo, e infatti, vedete che è stato aggiornato.
‫E quindi ora cambiamo di nuovo, o
‫proviamo di nuovo in realtà.
‫E così ora vedi che il primo ne ha ancora 4. 7 e questo
‫qui ora ne ha 4. 9.
‫E quindi ora sono ordinati con una valutazione crescente.
‫Destra?
‫E ovviamente, potremmo mettere un meno qui
‫e quindi dovrebbero cambiare posizione, il che significa
‫che quello con 4. 9 dovrebbe apparire per primo.
‫Proviamo anche quello.
‫E sì, infatti.
‫Quindi ora questo, il tour degli amanti dello
‫sport, è quello che appare per primo.
‫Va bene, fantastico.
‫Quindi sembra che funzioni.
‫Diamo un'occhiata ai nostri risultati qui.
‫E sì, infatti.
‫E diamo solo un'occhiata a ciò che abbiamo
‫registrato qui sulla console.
‫E quindi, sì, questo è il nostro ordinamento per variabile, che sì.
‫Che tipo di assomiglia a quello che abbiamo qui.
‫E quindi questo era l'obiettivo di creare questa variabile.
‫Ottimo, quindi ora funziona.
‫Eliminiamo questa console e anche questa qui.
‫E va bene.
‫E solo
‫per finire qui, aggiungiamone uno predefinito.
‫E lo facciamo semplicemente aggiungendo un blocco else qui.
‫Quindi, nel caso in cui l'utente non specifichi
‫alcun campo di ordinamento nella stringa di query dell'URL,
‫aggiungeremo comunque un ordinamento alla query.
‫Quindi interroga. sort e poi ordineremo in
‫base al campo di aggiunta creato, va bene?
‫E in realtà in ordine decrescente,
‫in modo che i più nuovi appaiano per primi.
‫Quindi meno creato a.
‫Va bene?
‫Dai a questo un salvataggio.
‫E quindi sì, penso così, abbiamo finito.
‫Disattiva anche qui questa opzione.
‫E così ora siamo tornati al nostro normale URL
‫senza stringhe di query.
‫E quindi diamo un'occhiata
‫se questo è ora effettivamente ordinato dal creato in.
‫Quindi questo qui finisce tra 59 secondi e 30.
‫5930 pure.
‫E sì.
‫Quindi sono stati creati tutti nello
‫stesso momento, perché li abbiamo importati tutti nello stesso momento.
‫Va bene?
‫E quindi in questo caso, non possiamo davvero vedere
‫l'effetto di questo pezzo di codice che abbiamo appena
‫aggiunto qui, ma nel caso in cui questi documenti siano
‫stati aggiunti in momenti diversi, ora verrebbero
‫ordinati in base alla data in cui sono stati creati.
‫Va bene?
‫Quindi questo è tutto per l'ordinamento.
‫Successivamente, parleremo di limitare i campi che vogliamo
‫nei nostri risultati.