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 vmongo
skořá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") }