MongoDB tilpasset $ funksjon

MongoDB tilpasset $ funksjon
MongoDB er en kraftig og fleksibel dokumentorientert database som lar utviklere lagre og hente data i et format som ligner på JSON. En av de kraftigste funksjonene i MongoDB er dens evne til å bruke tilpassede $ -funksjoner for å manipulere og spørre data. Tilpassede JavaScript-metoder på serversiden, ofte referert til som "lagrede funksjoner", støttes av MongoDB og kan brukes på spørringsspråket og samlede rørledningsstadier. Disse funksjonene kan spesifiseres ved hjelp av DB.system.JS -samling og de kan brukes i spørsmål eller den samlede rørledningen ved å bruke $ Funksjonsoperatøren. I denne artikkelen vil vi se på noen eksempler på tilpassede $ -funksjoner og utdataene de produserer.

Lage samling

For det første vil vi sjekke samlingen som er tilgjengelig i vår database. Derfor har MongoDB -skallet blitt lansert perfekt etter å ha koblet til tilkoblingsstrengen. "Show Collections" MongoDB -instruksjonen ble utført for å vise alle samlingene vi har. Denne kommandoen returnerer ikke noe på skallet fordi det ikke er noen samlinger i vår "test" -database som nedenfor. Derfor må vi først lage en ny samling og deretter begynne å jobbe med den.

Test> Vis samlinger

For å legge til eller opprette en ny datainnsamling i MongoDB -databasen, må vi bruke “DB” -instruksjonen etterfulgt av CreateCollection -metoden. CreateCollection -metoden er spesielt designet for å lage nye samlinger som tar navnet på en samling som skal opprettes i sitt argument. I instruksjonen nedenfor har vi kalt samlingen som "test". Utgangen fra kommandoen returnerer suksessstatusen: 0 for fiasko og 1 for suksess. Kommandoen nedenfor returnerer 1, noe som betyr at kommandoen har vært vellykket og samlingen er opprettet.

Test> DB.CreateCollection ("Test")
OK: 1

Sett inn poster

Etter å ha lagt til en ny samling i databasen, er det nødvendig å legge poster til den fordi samlingen kan være tom på opprettelsestidspunktet. Derfor, etter å ha brukt innsettingsfunksjonen til MongoDB i "DB" -instruksjonen, har vi lagt til 5 dokumenter til "Test" -samlingen på en gang. InsertMany () -funksjonen er spesifikk for å sette inn flere poster om gangen. Alle de 5 postene inneholder totalt 3 felt hver: tittel, by og område. "Tittel" -feltet er av "Streng" -type, områdefeltet er av heltallstype og byfeltet er i strengtypen som inneholder strengelementer. Utgangen fra denne instruksjonen viser bekreftelsen ved å vise de innsatte IDene til hvert dokument separat tildelt av MongoDB -databasen.

Test> DB.Test.InsertMany ([tittel: "USA", by: ["Newyork", "Chicago", "Boston"], område: 234567,
… Tittel: "UAE", City: ["Dubai", "Abudhabi", "Sharjah"], område: 786907,
… Tittel: "Asia", City: ["Bangkok", "Tokyo", "Beijing"], Area: 984567,
… Tittel: "Europe", City: ["Italia", "Istanbul", "London"], Area: 1475997,
… Tittel: "Antarctica", City: ["Villa Las Estrellas", "King Edward Point", "GryTvkin"], Area: 2835997])

Anerkjent: sant,
innsats:
'0': ObjectId ("63cffd7d64f216739d14b251"),
'1': ObjectId ("63cffd7d64f216739d14b252"),
'2': ObjectId ("63cffd7d64f216739d14b253"),
'3': ObjectId ("63cffd7d64f216739d14b254"),
'4': ObjectId ("63cffd7d64f216739d14b255")

Vis poster

Etter innsetting av alle postene i "Test" -samlingen av "Test" -databasen til MongoDB, er vi klare til å se på dem alle på en gang for å bekrefte innsettingen. Dermed kan MongoDBs "Find" -funksjon kastes i "DB" -instruksjonen for dette formålet. Sørg for å bruke navnet på en samling mellom nøkkelordet “DB” og Find () -funksjonen. Parametrene til funksjonen "Finn" må inneholde de tomme krøllete parentesene uten å spesifisere noe feltnavn. De tomme parentesene vurderer å hente alle postene fra samlingen med alle datafeltene mens du spesifiserer ett eller flere felt som fører til en enkelt eller bare spesifisert postvisning på skallet. Derfor viste utdataene for denne instruksjonen, med de tomme krøllete parentesene i Find () -funksjonen, alle de 5 postene av "Test" -samlingen hver med alle 3 feltene: tittelen, byen og området. Hver post kan også identifiseres separat fra en annen ved bruk av "_id" -feltet som er tildelt av MongoDB -databasen.

Test> DB.Test.finne()
[
°,
°,
°,
°,
°
]

Eksempel # 01:

Nå som vi er ferdige med innsetting og visning av postene fra "Test" -samlingen, er vi endelig klare til å bruke $ Function Custom -funksjonen for å utføre tilpassbare operasjoner på feltene. For eksempel vil du opprette et nytt runtime -felt i samlingen "Test" som vil inneholde detaljer om landet, dets byer og området det inneholder i en enkelt setning. For dette må vi bruke alle tre feltene i "Test" -samlingen i den tilpassede $ -funksjonsoperatøren som brukes i "Aggregate" -funksjonsspørsmålet vist nedenfor. Den tilpassede funksjonen tar alle tre feltene i "test" -samlingen i parametere for å lage et nytt felt "detalj". Returerklæringen har brukt disse tre feltene for å lage en setning og vise den på skallet. Det er nødvendig å spesifisere innsamlingsfeltene som "Args" og språket som er satt til "JS". Utgangen viser et nytt "detalj" i runtime -feltet som gir nøyaktig informasjon i en setning.

Test> DB.Test.Aggregate ([$ addFields: detalj: $ funksjon: body: funksjon (tittel, by, område) return '$ title har $ City byer med $ Area Area ...', args: ["$ tittel", "$ city", "$ area"], lang: "js"]))
[
_id: ObjectId("63cffd7d64f216739d14b251"), title: 'USA', city: [ 'Newyork', ' Chicago', ' Boston' ], area: 234567, Detail: 'USA has Newyork, Chicago, Boston cities with 234567 area ... ',
_id: ObjectId ("63cffd7d64f216739d14b252"), tittel: 'UAE', by: ['Dubai', 'Abudhabi', 'Sharjah'], Area: 786907, detalj: 'Uae Has Dubai, Abudhabi, Sharjah Cits Cites med DIBAI, ABUDHABI, Sharjah Cites 7860. ... ',
° ... ',
_id: ObjectId ("63cffd7d64f216739d14b254"), tittel: 'Europe', by: ['Italia', 'Istanbul', 'London'], område: 1475997, detalj: 'Europe har Italia, Istanbul, London Cities med 147599997. ... ',
° Edward Point, Grytvkin Cities med 2835997 område… '
]

Eksempel # 02:

La oss se på en annen illustrasjon for å bruke Custom $ -funksjonen i MongoDB. Her bruker vi operatøren på $ addfields etterfulgt av navnet på et felt "arealTriped" som vi ønsker å lage ved hjelp av $ Funksjonsoperatøren. Den tilpassede funksjonen tar 1 felt "område" som argument og "la" nøkkelordet lar oss erklære en variabel "trippel" som tar en verdi som "område" feltverdi multiplisert med 3. Returerklæringen vil returnere og vise resultatet beregnet i trippelvariabelen. Derfor viser utgangen av instruksjonen som er festet nedenfor totalt 5 felt for hvert dokument i testfeltet. Feltet "areaTriped" er blitt generert ved bruk av en tilpasset funksjon som viser området for alle de tre byene som er oppført i "by" -feltet i hvert dokument ved å multiplisere områdefeltverdien med 3.

Test> DB.Test.Aggregate ([$ addFields: AreaTriped: $ funksjon: body: funksjon (område) let triple = area*3; return '$ triple', args: ["$ area"], lang: " js "])
[
°,
_id: ObjectId ("63cffd7d64f216739d14b252"), tittel: 'uae', by: ['Dubai', 'Abudhabi', 'Sharjah'], område: 786907, AreaTriped: '2360721',
_id: ObjectId ("63cffd7d64f216739d14b253"), tittel: 'Asia', by: ['Bangkok', 'Tokyo', 'Beijing'], område: 984567, AreaTripled: '2953701',
_id: ObjectId ("63cffd7d64f216739d14b254"), tittel: 'Europe', by: ['Italia', 'Istanbul', 'London'], område: 1475997, AreaTriped: '4427991',
°

Konklusjon

Artikkelen handler om de tilpassede funksjonene i MongoDB, og den viser hvordan et MongoDB-miljø er så kraftig ved å bruke slike funksjoner: ettersom disse funksjonene tillater innsetting av JSON-lignende data og dets gjenvinning. Etter det opprettet vi samlingen og satte inn poster i den før vi brukte Custom $ Function Operator. Etter å ha satt miljøet, brukte vi to eksempler for å illustrere bruken av Custom $ -funksjonen. Eksemplene dekket bruken av en tilpasset $ -funksjonsoperatør for å opprette et nytt datafelt ved hjelp av allerede innsatte felt i samlingen og også utføre beregninger der det er mulig via bruk av variabel erklæring gjennom bruk av "la" nøkkelordet.