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 imongo
skal. - 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") }