MongoDB -skjemaer

MongoDB -skjemaer

Ordet skjema er mye brukt innen databaser for å beskrive hovedstrukturen i en hvilken som helst database. Det kan gi deg de indre detaljene i databasen din som datatyper, filnavn, tabeller osv. I MongoDB sies skjema å være et JSON -objekt som ikke bare uttrykker databasestrukturen, men også dataene den inneholder. Skjemaet blir generert med innsetting av data i en database og gir deg et detaljert syn og forståelse av dataene dine. Denne guiden hjelper deg å forstå skjemaene i MongoDB, deres skapelse og visning i MongoDB.

Lag database og legg til poster

Anta at du bruker den nyopprettede "test" -databasen i MongoDB. Når du begynner å se på alle de eksisterende databasene til MongoDB ved å bruke MongoDB -kommandolinjeverktøyet som CLI, vil du ikke finne "Test" -databasen i listen via "Vis DBS" -instruksjon. Dette er fordi vi ikke har lagt noen poster til denne databasen ennå som MongoDB fungerer på denne måten. Mens de innebygde databasene som brukes til konfigurasjoner, alltid er der for å vises. Derfor vil det ikke være noe skjema for "test" databaseposter for nå.

Test> Vis DBS

For å vise "Test" -databasen i listen over databaser og opprette skjemaet, må vi sette inn minst en enkelt post i databasesamlingen. Derfor bruker vi samlingene som fungerer som en tabell i MongoDB for å sette inn en post ved hjelp av "Sett inn" -funksjonen. Dermed bør denne spørringen utføres med "DB" nøkkelordet, etterfulgt av den nye samlingen som heter "Data" og "Sett inn" -funksjonen. Posten må være i et nøkkelverdiformat av ordbøker som JSON-formatet for å legge til dokumentene eller postene i MongoDB. Vi legger til den første posten med 3 hovedfelt mens det tredje feltet som er "detaljer" er et dokument, en rekke flere felt. Utførelsen av denne posten Insertion -spørringen returnerer kvitteringsmeldingen på MongoDB -skallet.

Test> DB.data.Sett inn ("Navn": "Peter", "Age": 29, "Details": ["Betegnelse": "Engineer", "Lønn": 50000, "Kvalifisering": "BS", "Emne" : "Datamaskin" ] )

Etter å ha lagt den første posten til "Test" -databasen, setter vi inn en annen post med samme format for dokumentinnsetting i MongoDB. Produksjonen viser erkjennelsen som "sann".

Test> DB.data.Sett inn ("Navn": "John", "Age": 32, "Details": ["Betegnelse": "Analytiker", "lønn": 45000, "kvalifisering": "MSC", "emne" : "Matte" ] )

Etter å ha utført nødvendige innsettinger, er vi her for å liste ned databasene igjen ved å bruke "Show DBS" -instruksjonen som er oppført i følgende illustrasjon. Utgangslisten over databaser viser at "test" -databasen nå er i listen og okkuperer 72 kilobyter med plass.

Test> Vis DBS

Vis postene

For å bekrefte at innsettingsspørsmålene fungerer bra og dataene er perfekt lagt til i databasen, må vi bruke MongoDBs "Find ()" -funksjon sammen med "foreach ()" -funksjonen som skriver ut JSON -formatdataene på kommandolinjeskallet til Mongodb. Følgende kommando viser både postene til "test" -databasen som nettopp legges til den:

Test> DB.data.finne().Foreach (Printjson)

Sjekk skjemaet i MongoDB CLI

La oss sjekke skjemaet for "Data" -samlingen til en "test" -database som ble opprettet i de forrige illustrasjonene. For dette må du opprette et nytt skjemaobjekt som heter "Test" ved hjelp av "VAR" -tnøkkelordet, i.e. Opprettelse av en objektvariabel. Dette objektet får skjemadetaljer fra "Data" -samlingen ved å bruke FindOne () -funksjonen til MongoDB.

test> var test = db.data.Finn én()

Etter det må vi kjøre en "for" -sløyfe i MongoDB -kommandolinjeverktøyet for å iterere alle tastene til en "data" -samling for "Test" -databasen. For dette bruker vi "Test" -objektvariabelen som referanse for å få nøklene til en loop. "Print" -funksjonsuttalelsen brukes til å vise hvert felt i en "data" -samling som en "nøkkel" sammen med typen den aktuelle tasten (felt).

Etter utførelsen av denne "for" loop -spørringen, får vi de 4 feltene eller nøkkelenavnene på en "data" -samling som vises sammen med datatypene de har. Dette kalles skjemainformasjonen til en bestemt database. Nå kan du ikke få tilgang til denne informasjonen for en bestemt database mens du jobber med en annen database.

test> for (var tast i test) print (tast, typeof -tast);

Sjekk skjemaet i Mongodb Compass eller GUI

La oss se på hvordan du får et skjemavisning i MongoDB Compass eller GUI Tool. For det må du ha MongoDB -kompasset og serveren installert riktig og koblet til en bestemt vert. Når du oppdaterer alternativet "Databaser" som er oppført i venstre hjørne av MongoDB Compass, vil du se en ny "Test" -database og dens "Data" -samling som er oppført der. Trykk på "Data" -samlingen for å se posten som et dokument som vi nettopp satte inn i den. To poster vises i et riktig dokumentformat.

Treff "skjemaet" -fanen fra menylinjen i "Test" -databasen. Bruk nå "Analyser" -knappen i grønn farge for å se den generelle ordningen for en "test" -database i et GUI -verktøy. Den viser alle datafeltene og verdiene i "data" -samlingen for en "test" -database med ekstra informasjon som nøkkeltyper, etc. Nøkkelen "_id" er en innebygd objekt-ID for "Data" -samlingen. Skjemaet viser “Alder” -tasten sammen med sine 2 verdier og dens “INT32” -type.

"Detaljer" -feltet er spesifisert som en "matrise" -type mens dataene er i "dokument" -format. Detaljene viser at den har 4 nestede felt. "Navn" -feltet er spesifisert som en "String" -type sammen med sine 2 strengverdier.

Når du utvider "detaljer" nøkkelfeltet ved å tappe på det, viser det nestede felt sammen med deres skjemainformasjon. Du kan se alle de 4 nøkkelfeltene - betegnelse, kvalifisering, lønn og emne - oppført der sammen med deres viktige typer. Dataene som disse nestede nøklene har, vises også foran hvert felt.

Konklusjon

Hensikten med denne guiden er å levere den enkleste måten å forstå skjemaer i MongoDB. For dette tok vi 3-4 hovedtrinn i en MongoDB CLI som å lage en database, sette inn poster i den gjennom samlinger, vise postene og lage en variabel for å vise skjemaet. Vi benyttet også MongoDBs GUI -verktøy som heter "Compass" for å få informasjonen om det aktuelle skjemaet for en database og så på det i detalj.