In MongoDB, Date() restituisce una data come stringa o come oggetto Date.
- Quando lo chiami come
Date(), restituisce la data corrente come stringa nelmongoguscio. - 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")
}