sql >> Database teknologi >  >> NoSQL >> MongoDB

3 måder at konvertere en dato til en streng i MongoDB

MongoDB har en Date BSON-type, der giver dig mulighed for at gemme datoer som datoer.

Du kan også gemme datoer som strenge, hvis det er det, du har brug for.

Hvis du tager det et skridt videre, kan du også konvertere en dato til en streng.

Denne artikel præsenterer tre måder at konvertere en dato til en streng i MongoDB.

Eksempel på data

Eksemplerne i denne artikel bruger følgende dokument i en samling kaldet cats :

{
	"_id" : 1,
	"name" : "Scratch",
	"born" : ISODate("2021-01-03T23:30:15.123Z")
}

Bemærk, at born feltet er en dato. Følgende eksempler bruger forskellige aggregeringspipeline-operatorer til at konvertere dette felt til en streng.

$dateToString Operatør

$dateToString aggregeringspipeline-operatør er det mest oplagte sted at starte.

Som navnet antyder, er dens eneste formål at konvertere en dato til en streng (og returnere resultatet).

Eksempel:

db.cats.aggregate(
   [
     {
       $project: {
         _id: 0,
          dateString: { $dateToString: { format: "%Y-%m-%dT%H:%M:%S.%LZ", date: "$born" } }
       }
     }
   ]
)

Resultat:

{ "dateString" : "2021-01-03T23:30:15.123Z" }

Her angav jeg en formatstreng for at angive formatet på den resulterende streng. I dette tilfælde brugte jeg %Y-%m-%dT%H:%M:%S.%LZ , som er standardformatet. Hvis jeg ikke havde angivet et format, er dette det format, det ville have brugt.

Du kan flytte disse formatspecifikationer rundt, så de passer til din resulterende streng.

For eksempel kunne vi gøre dette:

db.cats.aggregate(
   [
     {
       $project: {
         _id: 0,
          dateString: { $dateToString: { format: "%d/%m/%Y", date: "$born" } }
       }
     }
   ]
)

Resultat:

{ "dateString" : "03/01/2021" }

Se MongoDB $dateToString for mere information om denne operatør.

$toString Operatør

$toString aggregeringspipeline-operator ligner $dateToString , bortset fra at det kan konvertere fra forskellige typer - det er ikke kun begrænset til at konvertere fra en dato.

Men til vores formål konverterer vi fra en dato.

Eksempel:

db.cats.aggregate(
   [
     {
       $project: {
         _id: 0,
          dateString: { $toString: "$born" }
       }
     }
   ]
)

Resultat:

{ "dateString" : "2021-01-03T23:30:15.123Z" }

Denne operatør giver os ikke mulighed for at angive et format, så formatet returneres som det er.

Se MongoDB $toString for mere information og eksempler.

$convert Operatør

$convert operatør blev specielt designet til at konvertere mellem en type og en anden.

input parameter angiver det felt, du vil konvertere, og to parameter angiver den type, du vil konvertere den til.

Eksempel:

db.cats.aggregate(
  [
    {
      $project:
        { 
          result: 
          {
            $convert: { 
              input: "$born", 
              to: "string",
              onError: "An error occurred",
              onNull: "Input was null or empty" 
            }
          }
        }
    }
  ]
)

Resultat:

{ "_id" : 1, "result" : "2021-01-03T23:30:15.123Z" }

Bemærk, at $convert operatør accepterer også onError og onNull parametre, som giver os mulighed for at give en besked til brug i tilfælde af en fejl eller en null værdi. Dette forhindrer hele aggregeringsoperationen i at stoppe, og det giver mulighed for en brugervenlig fejlmeddelelse i outputdokumentet.

Se MongoDB $convert for mere information og eksempler.


  1. MongoDB Regex, Index &Performance

  2. Lagring af nøgler med præfiks, der udløber i redis

  3. Installation af Apache CouchDB på CentOS 7

  4. Databaseovervågning med ClusterControl