I MongoDB er Date() metoden returnerer en dato enten som en streng eller som et Dato-objekt.
- Når du kalder det som
Date(), returnerer den den aktuelle dato som en streng imongoskal. - Når du kalder det som
new Date(), returnerer den den aktuelle dato som et Dato-objekt.
Du kan også angive en bestemt dato som argument til new Date() , så den bruger den dato.
Eksempel – Date()
Her er et eksempel på at indsætte et dokument i en samling og bruge Date() som værdien for et af felterne:
db.dogs.insert(
{
"_id" : 1,
"name" : "Fetch",
"lastModified" : Date()
}
) Efter at have kørt den kode, kan vi tage et kig på det resulterende dokument:
db.dogs.find().pretty() Resultat:
{
"_id" : 1,
"name" : "Fetch",
"lastModified" : "Wed Jan 27 2021 10:15:53 GMT+1000 (AEST)"
}
Vi kan se, at lastModified datofeltet bruger en datostreng som værdi.
Eksempel – new Date()
Som nævnt, hvis du vil returnere et datoobjekt i stedet for en datostreng, skal du bruge new Date() .
Eksempel:
db.dogs.insert(
{
"_id" : 2,
"name" : "Wag",
"lastModified" : new Date()
}
)
Du skal blot foranstille Date() med new resulterer i et Dato-objekt i stedet for en datostreng.
Lad os nu tjekke indsamlingen af dokumenter igen:
db.dogs.find().pretty() Resultat:
{
"_id" : 1,
"name" : "Fetch",
"lastModified" : "Wed Jan 27 2021 10:15:53 GMT+1000 (AEST)"
}
{
"_id" : 2,
"name" : "Wag",
"lastModified" : ISODate("2021-01-27T00:19:08.862Z")
}
Vi kan se, at datoen i det andet dokument er blevet pakket med ISODate() hjælper. ISO-datoen er i UTC.
Angiv en specifik dato
Du kan angive din egen dato, når du kalder Date() metode.
For at gøre dette skal du videregive en ISO-8601-datostreng med et år inden for det inklusive 0 til 9999 til new Date() konstruktør eller ISODate() fungere.
Her er et eksempel.
db.dogs.update(
{ "_id" : 1 },
{ $set : { "born" : new Date( "2020-10-07" ) } }
) Lad os nu tjekke dokumentet:
db.dogs.find( { "_id": 1 } ).pretty() Resultat:
{
"_id" : 1,
"name" : "Fetch",
"lastModified" : "Wed Jan 27 2021 10:15:53 GMT+1000 (AEST)",
"born" : ISODate("2020-10-07T00:00:00Z")
} Vi kan se, at det fødte felt er blevet tilføjet, og det er sat til den angivne dato.
Du kan angive datoen i følgende formater.
| Format | Beskrivelse |
|---|---|
YYYY-mm-dd | Returnerer ISODate med den angivne dato. |
YYYY-mm-ddTHH:MM:ss | Specificerer dato og klokkeslæt i klientens lokale tidszone og returnerer ISODate med den angivne dato og klokkeslæt i UTC. |
YYYY-mm-ddTHH:MM:ssZ | Specificerer dato og klokkeslæt i UTC og returnerer ISODate med den angivne dato og klokkeslæt i UTC. |
| Heltal | Du kan også angive et heltal som værdi. Når du gør dette, angiver den dato og klokkeslæt som millisekunder siden Unix-epoken (1. januar 1970), og returnerer den resulterende ISODate forekomst. |
Unix Epoch
Her er et eksempel på at angive et heltal som argumentet til new Date() .
Hvis du gør dette, angives dato og klokkeslæt som millisekunder siden Unix-epoken (1. januar 1970), og returnerer den resulterende ISODate eksempel.
db.dogs.update(
{ "_id" : 2 },
{ $set : { "born" : new Date( 1601207768012 ) } }
) Lad os nu tjekke dokumentet:
db.dogs.find( { "_id": 2 } ).pretty() Resultat:
{
"_id" : 2,
"name" : "Wag",
"lastModified" : ISODate("2021-01-27T00:19:08.862Z"),
"born" : ISODate("2020-09-27T11:56:08.012Z")
}