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 demongo
schelp. - 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") }