W MongoDB funkcja Date() metoda zwraca datę jako ciąg znaków lub jako obiekt Date.
- Kiedy nazywasz to jako
Date(), zwraca bieżącą datę jako ciąg znaków wmongopowłoka. - Kiedy nazywasz to jako
new Date(), zwraca bieżącą datę jako obiekt Date.
Możesz również podać konkretną datę jako argument do new Date() , aby używał tej daty.
Przykład – Date()
Oto przykład wstawiania dokumentu do kolekcji i używania Date() jako wartość jednego z pól:
db.dogs.insert(
{
"_id" : 1,
"name" : "Fetch",
"lastModified" : Date()
}
) Po uruchomieniu tego kodu możemy spojrzeć na wynikowy dokument:
db.dogs.find().pretty() Wynik:
{
"_id" : 1,
"name" : "Fetch",
"lastModified" : "Wed Jan 27 2021 10:15:53 GMT+1000 (AEST)"
}
Widzimy, że lastModified pole daty używa ciągu daty jako wartości.
Przykład – new Date()
Jak wspomniano, jeśli chcesz zwrócić obiekt daty zamiast ciągu daty, użyj new Date() .
Przykład:
db.dogs.insert(
{
"_id" : 2,
"name" : "Wag",
"lastModified" : new Date()
}
)
Po prostu poprzedź Date() z new daje w wyniku obiekt Date, a nie ciąg daty.
Sprawdźmy teraz ponownie kolekcję dokumentów:
db.dogs.find().pretty() Wynik:
{
"_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")
}
Widzimy, że data w drugim dokumencie została opakowana za pomocą ISODate() pomocnik. Data ISO jest w UTC.
Podaj konkretną datę
Możesz podać własną datę podczas wywoływania funkcji Date() metoda.
Aby to zrobić, przekaż ciąg daty ISO-8601 z rokiem w zakresie włącznie 0 przez 9999 do new Date() konstruktora lub ISODate() funkcjonować.
Oto przykład.
db.dogs.update(
{ "_id" : 1 },
{ $set : { "born" : new Date( "2020-10-07" ) } }
) Sprawdźmy teraz dokument:
db.dogs.find( { "_id": 1 } ).pretty() Wynik:
{
"_id" : 1,
"name" : "Fetch",
"lastModified" : "Wed Jan 27 2021 10:15:53 GMT+1000 (AEST)",
"born" : ISODate("2020-10-07T00:00:00Z")
} Widzimy, że pole born zostało dodane i zostało ustawione na podaną datę.
Możesz podać datę w następujących formatach.
| Format | Opis |
|---|---|
YYYY-mm-dd | Zwraca ISODate z określoną datą. |
YYYY-mm-ddTHH:MM:ss | Określa datę i godzinę w lokalnej strefie czasowej klienta i zwraca ISODate z określoną datą i godziną w UTC. |
YYYY-mm-ddTHH:MM:ssZ | Określa datę i godzinę w UTC i zwraca ISODate z określoną datą i godziną w UTC. |
| Liczba całkowita | Możesz również podać liczbę całkowitą jako wartość. Kiedy to zrobisz, określa datę i czas w milisekundach od epoki Uniksa (1 stycznia 1970) i zwraca wynikowy ISODate przykład. |
Epoka Uniksa
Oto przykład określenia liczby całkowitej jako argumentu funkcji new Date() .
W ten sposób określa się datę i czas w milisekundach od epoki Uniksa (1 stycznia 1970) i zwraca wynikową wartość ISODate przykład.
db.dogs.update(
{ "_id" : 2 },
{ $set : { "born" : new Date( 1601207768012 ) } }
) Sprawdźmy teraz dokument:
db.dogs.find( { "_id": 2 } ).pretty() Wynik:
{
"_id" : 2,
"name" : "Wag",
"lastModified" : ISODate("2021-01-27T00:19:08.862Z"),
"born" : ISODate("2020-09-27T11:56:08.012Z")
}