MongoDB $ CurrentDate -operatør

MongoDB $ CurrentDate -operatør
Dato og tid er de mest verdifulle eiendelene for alle levende vesen i dagens tid. Hvis du ikke oppfyller frister på en bestemt dato og tid, kan du mislykkes i mange situasjoner i livet ditt, enten det er et viktig oppdrag, et stort prosjekt eller en internasjonal flyvning å fange. Derfor er det veldig nødvendig å takle prioriteringene dine med balansert dato og tidsstyring. Akkurat som dette kom MongoDB -miljøet med slike nyttige operatører for automatisk å administrere dato og klokkeslett for ethvert system. En av disse operatørene er "CurrentDate" -operatøren som er spesifisert for å få gjeldende dato og tid i innsamlingsfeltene. I denne artikkelen vil du kunne lære om hvordan du kan unngå manuell oppdatering av dato via "CurrentDate" -operatøren av MongoDB.

Opprett databasesamlingen

For å diskutere bruken av "$ CurrentDate" -operatøren i MongoDB, vil vi se på noen praktiske eksempler. Før det må du ha et ordentlig MongoDB -oppsett på slutten. Etter å ha satt opp den, oppretter du en ny "test" -database i systemet ditt. MongoDB-skjemaene fungerer bare på samlinger med dokumentformat-poster. Derfor lager vi endelig en enkel "Time" -samling i "Test" -databasen som skal brukes i de medfølgende eksemplene. MongoDBs CreateCollection () -metode brukes her med "DB" nøkkelord for dette formålet. Samlingen som heter “Time” er endelig opprettet i henhold til “OK: 1” -utgangen.

Test> DB.CreateCollection ("Tid")

Mens vi prøver "Finn" -metode-spørringen for å vise postene til "Time" -samlingen på MongoDB-kommandolinjegrensesnittet, fikk vi det tomt, da vi ikke la til noen poster ennå.

Test> DB.Tid.finne()

Legg til poster i MongoDB -samlingen

Derfor er det på høy tid å legge til noen datafelt i "Time" -samlingen til "Test" -databasen. Disse postene skal inneholde minst ett felt som brukes til å holde en nåværende "dato". Dermed utføres innsettingsfunksjonen til "MongoDB" for å legge til totalt 3 poster i "Time" -samlingen til "Test" -databasen. Gjennom denne prosessen brukes MongoDB-kommandolinjeskallet for "DB" -utførelsen med navnet på en samling som er "test". Hver av postene inneholder tre felt mens det siste feltet, "DateTime", for å holde gjeldende dato. Vi legger til en dummy tidsstempel i den for å kjøre spørringen. Når vi kjører denne spørringen på MongoDB -skallet, får vi kvitteringsmeldingen som vises på følgende vedlagte bilde:

Test> DB.Tid.InsertMany ([id: 1, land: "Amerika", DT: Timestamp (166471552, 3),
… Id: 2, land: "Kina", DT: Timestempel (144471552, 3),
... id: 3, land: "England", dt: tidsstempel (1433471452, 3)])

For å få et ordentlig blikk på de ekstra postene for den spesielle "Time" -samlingen i MongoDB, må du bruke "Finn" -spørsmålet på samme måte som vi gjorde mens du oppretter en samling. Utgangsbildet for følgende listede spørring viser tre separate poster, hver med samme navnfelt:

Test> DB.Tid.finne()

Eksempel 1: Angi gjeldende dato for enkeltoppføring

Nå som vi er ferdige med tillegg av noen poster i databasen "Time" -samling, endrer vi "DT" -feltet for å konvertere verdien til gjeldende dato. Derfor blir UpdateOne () -funksjonen til MongoDB støpt i MongoDB “DB” -skallinstruksjonen. Sørg for å bruke riktig navn for en samling som skal endres. Denne spørringen starter med identifikasjonsfeltet som "ID" for en post som skal oppdateres. Sammen med det er $ CurrentDate -operatøren støpt for å sette "DT" -feltet til "True" ved å angi gjeldende dato. Når vi kjører denne instruksjonen, får vi den "sanne" erkjennelsen og modifiseringstallet som "1".

Test> DB.Tid.UpdateOne (id: 1, $ currentDate: dt: true)

Nå som "DT" -feltet fra den første posten av "Time" -samlingen oppdateres via "$ CurrentDate" -operatøren, ser vi på den oppdaterte versjonen i MongoDB -skallet. Etter å ha nevnt “ID: 1” i "Finn" -funksjonsspørsmålet, får vi den endrede posten på skallskjermen vår. "DT" -feltets verdi er nå satt til gjeldende dato.

Test> DB.Tid.finn (id: 1)

Eksempel 2: Angi datoen til tidsstempel for enkeltoppføring

Nå beveger vi oss mot illustrasjonen for å konvertere tilbake den enkle gjeldende dato -feltverdien til den relaterte spesifikke tidsstempelet på den enkleste måten. For dette må vi sørge for at posten innen det datorelaterte feltet må inneholde en datoverdi med standardformat for dato-tid. Utgangen fra det forrige eksemplet viser at "DT" -feltet har et standard dato-tidsformat. I dette tilfellet bruker vi UpdateOne () -funksjonen for å endre "DT" -feltet i en "tid" -samling. Spørringen starter med "DB" nøkkelordet i MongoDB etterfulgt av DOT -produktet med "Time" -samlingen og oppdateringen () -funksjonen. Typen for "DT" -feltet er satt til "Timestamp" BSON -format. En oppdatering gjenspeiles.

Test> DB.Tid.UpdateOne (id: 1, $ currentDate: dt: $ type: "timestamp")

Etter å ha funnet de tre postene til "Time" -samlingen ved hjelp av "Finn" -funksjonen i "DB" -spørsmålet, får vi den første posten formatert tilbake til det originale tidsstemplet, samme som de andre postene.

Test> DB.Tid.finne()

Eksempel 3: tidsstempel til gjeldende dato i flere poster

Det forrige eksemplet utdata illustrerer at vi nå har "DT" feltverdien i "Tidsstempel" -formatet for en dato for alle de tre postene i samlingen. Vi må se på en måte å konvertere alle "tidsstempel" -formater til et standard gjeldende datoformat på en gang for alle poster. "UpdateManiaN" -metoden til MongoDB brukes her. "$ CurrentDate" -operatøren blir brukt på "DT" -feltet ved å sette verdien til "True" for alle postene "". Denne operasjonen er vellykket som utgangen viser:

Test> DB.Tid.updatemany (, $ currentDate: dt: true)

Etter å ha kjørt Find Instruction, viser alle de tre postene til "Time" -samlingen som vises i bildet at tidsstempelet er formatert til standard datoformat.

Test> DB.Tid.finne()

Konklusjon

Etter å ha vært nøye med på denne guiden, vil du raskt kunne lære om det grunnleggende ved å bruke "CurrentDate" -operatøren i MongoDB. De medfølgende illustrasjonene viser bruken av "$ currentDate" -operatøren for å angi en hvilken som helst feltverdi til gjeldende dato og formatere gjeldende dato til tidsstempel. Eksemplene inneholder innstillingen av "$ currentDate" -operatøren for enkeltoppføringer, så vel som for flere poster.