Spørringer er en måte å hente ut spesifikke dokumenter i en database som møter en betingelse, f.eks. "skriv ut alle personer over 18 år" eller "skriv ut alle jentene i databasen, sortert etter etternavn".
Med query() kan vi lage spørringer mot databasen. En spørring er en betingelse for å filtrere, begrense eller sortere dataene som skrives ut. Dette fungerer i utgangspunktet på samme måte som i SQL. For eksempel kan vi hente ut bare elever som er registrert med e-post, eller vi kunne ha hentet ut bare elever som har matematikk som et av sine fag. For å lage en spørring kan vi bruke funksjonene where(), orderBy(), startAt(), startAfter(), endAt(), limit() eller limitToLast().
query()
where()
orderBy()
startAt()
startAfter()
endAt()
limit()
limitToLast()
For eksempel kan vi lage en spørring for å hente ut alle elever, sortert på etternavn:
// import { collection, query, orderBy } from "https://www.gstatic.com/firebasejs/9.6.3/firebase-firestore.js"; query( collection(db, "elever"), orderBy("etternavn") );
Vi kan også lage en spørring for å bare hente ut elever som er registrert med e-post:
// import { collection, query, where } from "https://www.gstatic.com/firebasejs/9.6.3/firebase-firestore.js"; query( collection(db, "elever"), where("epost", "!=", "undefined") );
Betingelsen where("epost", "!=", "undefined") betyr at e-post skal være ikke lik (!=) "undefined". Det vil si at spørringen utelukker elever som ikke har registrert e-post (epost == undefined).
where("epost", "!=", "undefined")
!=
epost == undefined
Vi skal nå bruke denne spørringen opp mot databasen og skrive ut resultatet:
// import { getDocs, collection, query, where } from "https://www.gstatic.com/firebasejs/9.6.3/firebase-firestore.js"; const querySet = await getDocs( query( collection(db, "elever"), where("epost", "!=", "undefined") ) ); // returnerer en liste med dokumenter som møter betingelsen, som lagres i listen/arrayen querySet // Går gjennom alle dokumenter returnert av spørringen querySet.forEach((docu) => { // Skriver ut data fra hvert av dokumentene til konsollen console.log( docu.data().fornavn, docu.data().etternavn, docu.data().epost ); });
querySet.forEach() skriver ut alle resultatene av spørringen i konsollen:
querySet.forEach()
Utskrift av navn og e-post til alle elever som har registrert e-post Begrenset bruk Bilde: Google
Om Firebaseplattformen Oppsett av Firebase og Cloud Firestore Forskjellen på relasjonsdatabas...
© 2024 • Contents under CC-BY-NC • Maintained by Karl Arne Dalsaune