In MongoDB, Date()
restituisce una data come stringa o come oggetto Date.
- Quando lo chiami come
Date()
, restituisce la data corrente come stringa nelmongo
guscio. - Quando lo chiami come
new Date()
, restituisce la data corrente come oggetto Date.
Puoi anche fornire una data specifica come argomento per new Date()
, in modo che utilizzi quella data.
Esempio – Date()
Ecco un esempio di inserimento di un documento in una raccolta e utilizzo di Date()
come valore per uno dei campi:
db.dogs.insert(
{
"_id" : 1,
"name" : "Fetch",
"lastModified" : Date()
}
)
Dopo aver eseguito quel codice, possiamo dare un'occhiata al documento risultante:
db.dogs.find().pretty()
Risultato:
{ "_id" : 1, "name" : "Fetch", "lastModified" : "Wed Jan 27 2021 10:15:53 GMT+1000 (AEST)" }
Possiamo vedere che il lastModified
il campo data utilizza una stringa di data come valore.
Esempio – new Date()
Come accennato, se vuoi restituire un oggetto data invece di una stringa di data, usa new Date()
.
Esempio:
db.dogs.insert(
{
"_id" : 2,
"name" : "Wag",
"lastModified" : new Date()
}
)
Semplicemente anteponendo Date()
con new
risulta in un oggetto Date anziché in una stringa di data.
Ora controlliamo nuovamente la raccolta dei documenti:
db.dogs.find().pretty()
Risultato:
{
"_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")
}
Possiamo vedere che la data nel secondo documento è stata racchiusa con ISODate()
aiutante. L'ISODate è in UTC.
Fornire una data specifica
Puoi fornire la tua data quando chiami Date()
metodo.
A tale scopo, passa una stringa di data ISO-8601 con un anno compreso nell'intervallo compreso 0
tramite 9999
al new Date()
costruttore o ISODate()
funzione.
Ecco un esempio.
db.dogs.update(
{ "_id" : 1 },
{ $set : { "born" : new Date( "2020-10-07" ) } }
)
Ora controlliamo il documento:
db.dogs.find( { "_id": 1 } ).pretty()
Risultato:
{ "_id" : 1, "name" : "Fetch", "lastModified" : "Wed Jan 27 2021 10:15:53 GMT+1000 (AEST)", "born" : ISODate("2020-10-07T00:00:00Z") }
Possiamo vedere che il campo nato è stato aggiunto ed è stato impostato sulla data fornita.
Puoi fornire la data nei seguenti formati.
Formato | Descrizione |
---|---|
YYYY-mm-dd | Restituisce il ISODate con la data specificata. |
YYYY-mm-ddTHH:MM:ss | Specifica la data e l'ora nel fuso orario locale del client e restituisce ISODate con la data e l'ora specificata in UTC. |
YYYY-mm-ddTHH:MM:ssZ | Specifica la data e l'ora in UTC e restituisce ISODate con la data e l'ora specificata in UTC. |
Intero | Puoi anche fornire un numero intero come valore. Quando lo fai, specifica il datetime come millisecondi dall'epoca Unix (1 gennaio 1970) e restituisce il risultante ISODate esempio. |
Epoca Unix
Ecco un esempio di come specificare un numero intero come argomento per new Date()
.
In questo modo viene specificato il datetime in millisecondi dall'epoca Unix (1 gennaio 1970) e viene restituito il ISODate
risultante esempio.
db.dogs.update(
{ "_id" : 2 },
{ $set : { "born" : new Date( 1601207768012 ) } }
)
Ora controlliamo il documento:
db.dogs.find( { "_id": 2 } ).pretty()
Risultato:
{ "_id" : 2, "name" : "Wag", "lastModified" : ISODate("2021-01-27T00:19:08.862Z"), "born" : ISODate("2020-09-27T11:56:08.012Z") }