V MongoDB, Date() metoda vrací datum buď jako řetězec, nebo jako objekt Date.
- Když to zavoláte jako
Date(), vrátí aktuální datum jako řetězec vmongoskořápka. - Když to zavoláte jako
new Date(), vrátí aktuální datum jako objekt Date.
Můžete také zadat konkrétní datum jako argument pro new Date() , takže použije toto datum.
Příklad – Date()
Zde je příklad vložení dokumentu do kolekce a použití Date() jako hodnotu pro jedno z polí:
db.dogs.insert(
{
"_id" : 1,
"name" : "Fetch",
"lastModified" : Date()
}
) Po spuštění tohoto kódu se můžeme podívat na výsledný dokument:
db.dogs.find().pretty() Výsledek:
{
"_id" : 1,
"name" : "Fetch",
"lastModified" : "Wed Jan 27 2021 10:15:53 GMT+1000 (AEST)"
}
Vidíme, že lastModified pole datum používá jako hodnotu řetězec data.
Příklad – new Date()
Jak již bylo zmíněno, pokud chcete vrátit objekt data namísto řetězce data, použijte new Date() .
Příklad:
db.dogs.insert(
{
"_id" : 2,
"name" : "Wag",
"lastModified" : new Date()
}
)
Jednoduše přidejte před Date() s new výsledkem je objekt Date spíše než řetězec data.
Nyní znovu zkontrolujeme sbírku dokumentů:
db.dogs.find().pretty() Výsledek:
{
"_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")
}
Vidíme, že datum ve druhém dokumentu bylo zabaleno pomocí ISODate() pomocník. ISODate je v UTC.
Uveďte konkrétní datum
Při volání Date() můžete zadat své vlastní datum metoda.
Chcete-li to provést, předejte řetězec data ISO-8601 s rokem v celém rozsahu 0 až 9999 na new Date() konstruktor nebo ISODate() funkce.
Zde je příklad.
db.dogs.update(
{ "_id" : 1 },
{ $set : { "born" : new Date( "2020-10-07" ) } }
) Nyní zkontrolujeme dokument:
db.dogs.find( { "_id": 1 } ).pretty() Výsledek:
{
"_id" : 1,
"name" : "Fetch",
"lastModified" : "Wed Jan 27 2021 10:15:53 GMT+1000 (AEST)",
"born" : ISODate("2020-10-07T00:00:00Z")
} Vidíme, že pole narození bylo přidáno a bylo nastaveno na poskytnuté datum.
Datum můžete zadat v následujících formátech.
| Formát | Popis |
|---|---|
YYYY-mm-dd | Vrátí ISODate se zadaným datem. |
YYYY-mm-ddTHH:MM:ss | Určuje datum a čas v místním časovém pásmu klienta a vrací ISODate se zadaným datem a časem v UTC. |
YYYY-mm-ddTHH:MM:ssZ | Určuje datum a čas v UTC a vrací ISODate se zadaným datem a časem v UTC. |
| Celé číslo | Můžete také zadat celé číslo jako hodnotu. Když to uděláte, určí datum a čas v milisekundách od epochy Unixu (1. ledna 1970) a vrátí výslednou hodnotu ISODate instance. |
Epocha Unix
Zde je příklad zadání celého čísla jako argumentu new Date() .
Tímto způsobem určíte datum a čas v milisekundách od epochy Unixu (1. ledna 1970) a vrátí výslednou hodnotu ISODate instance.
db.dogs.update(
{ "_id" : 2 },
{ $set : { "born" : new Date( 1601207768012 ) } }
) Nyní zkontrolujeme dokument:
db.dogs.find( { "_id": 2 } ).pretty() Výsledek:
{
"_id" : 2,
"name" : "Wag",
"lastModified" : ISODate("2021-01-27T00:19:08.862Z"),
"born" : ISODate("2020-09-27T11:56:08.012Z")
}