In MongoDB is de Date() methode retourneert een datum als een string of als een Date-object.
- Als je het aanroept als
Date(), het retourneert de huidige datum als een tekenreeks in demongoschelp. - Als je het aanroept als
new Date(), het retourneert de huidige datum als een Date-object.
U kunt ook een specifieke datum opgeven als argument voor new Date() , zodat het die datum gebruikt.
Voorbeeld – Date()
Hier is een voorbeeld van het invoegen van een document in een verzameling en het gebruik van Date() als de waarde voor een van de velden:
db.dogs.insert(
{
"_id" : 1,
"name" : "Fetch",
"lastModified" : Date()
}
) Nadat we die code hebben uitgevoerd, kunnen we het resulterende document bekijken:
db.dogs.find().pretty() Resultaat:
{
"_id" : 1,
"name" : "Fetch",
"lastModified" : "Wed Jan 27 2021 10:15:53 GMT+1000 (AEST)"
}
We kunnen zien dat de lastModified datumveld gebruikt een datumtekenreeks als waarde.
Voorbeeld – new Date()
Zoals vermeld, als u een datumobject wilt retourneren in plaats van een datumtekenreeks, gebruikt u new Date() .
Voorbeeld:
db.dogs.insert(
{
"_id" : 2,
"name" : "Wag",
"lastModified" : new Date()
}
)
Gewoon voorafgaan aan Date() met new resulteert in een Date-object in plaats van een datumstring.
Laten we nu nog eens kijken naar de verzameling documenten:
db.dogs.find().pretty() Resultaat:
{
"_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")
}
We kunnen zien dat de datum in het tweede document is ingepakt met de ISODate() helper. De ISO-datum is in UTC.
Geef een specifieke datum op
U kunt uw eigen datum opgeven bij het aanroepen van de Date() methode.
Geef hiervoor een ISO-8601-datumstring met een jaar binnen het inclusieve bereik 0 via 9999 naar de new Date() constructor of de ISODate() functie.
Hier is een voorbeeld.
db.dogs.update(
{ "_id" : 1 },
{ $set : { "born" : new Date( "2020-10-07" ) } }
) Laten we nu het document controleren:
db.dogs.find( { "_id": 1 } ).pretty() Resultaat:
{
"_id" : 1,
"name" : "Fetch",
"lastModified" : "Wed Jan 27 2021 10:15:53 GMT+1000 (AEST)",
"born" : ISODate("2020-10-07T00:00:00Z")
} We kunnen zien dat het geboren veld is toegevoegd en is ingesteld op de opgegeven datum.
U kunt de datum in de volgende formaten opgeven.
| Formaat | Beschrijving |
|---|---|
YYYY-mm-dd | Retourneert de ISODate met de opgegeven datum. |
YYYY-mm-ddTHH:MM:ss | Specificeert de datetime in de lokale tijdzone van de client en retourneert de ISODate met de gespecificeerde datetime in UTC. |
YYYY-mm-ddTHH:MM:ssZ | Specificeert de datetime in UTC en retourneert de ISODate met de gespecificeerde datetime in UTC. |
| Geheel getal | U kunt ook een geheel getal als waarde opgeven. Wanneer u dit doet, specificeert het de datetime als milliseconden sinds het Unix-tijdperk (1 januari 1970), en retourneert het de resulterende ISODate instantie. |
Unix-tijdperk
Hier is een voorbeeld van het specificeren van een geheel getal als argument voor new Date() .
Als u dit doet, wordt de datetime gespecificeerd als milliseconden sinds het Unix-tijdperk (1 januari 1970), en wordt de resulterende ISODate geretourneerd instantie.
db.dogs.update(
{ "_id" : 2 },
{ $set : { "born" : new Date( 1601207768012 ) } }
) Laten we nu het document controleren:
db.dogs.find( { "_id": 2 } ).pretty() Resultaat:
{
"_id" : 2,
"name" : "Wag",
"lastModified" : ISODate("2021-01-27T00:19:08.862Z"),
"born" : ISODate("2020-09-27T11:56:08.012Z")
}