MongoDB $ DATFromStrings Operator

MongoDB $ DATFromStrings Operator
Rurociąg agregacyjny $ DATEFROMString Operator MongoDB zmienia ciąg daty/godziny na obiekt daty. $ DATFROMString musi być dostarczany z argumentem datestring, w którym wartość daty przypisuje się do przekształcenia. Operator $ DATFROMString zawiera również stref czasowy, format, onerror i parametry, które są opcjonalne. Zawiera również kilka dodatkowych funkcji, takich jak możliwość dostosowania formatu strefy daty i czasów. Zatem dzięki $ dateFromString możemy przekonwertować daty typu ciągów na obiekt daty.

Jak działa operator $ DATFROMString w MongoDB

Zastosowanie operatora $ DATFROMString w MongoDB polega na przekonwertowaniu formy ciągu daty na obiekt daty. Tutaj konwertujemy datę ciągów dokumentów określonych w kolekcji MongoDB. Generujemy kolekcję „datesheet” w skorupce MongoDB, w której śledzimy następujące zapytanie, aby wstawić niektóre dokumenty. Dokumenty te są wstawiane do pola zawierającego datę ciągu.

db.Arkusz dateshe.wstrząs

„_id”: 1,
„Data”: „2023-04-30”,
„TimeZone”: „America/New_York”
,

„_id”: 2,
„Data”: „1-5-2021”,
strefa czasowa: „UTC”
,

„_id”: 3,
„Data”: „10.02.2021”,
„TimeZone”: „America/New_York”
,

„_id”: 4,
„Data”: Null,
„TimeZone”: „UTC”
,

„_id”: 5,
„Data”: „20211-03-05T04: 35: 01.066 ",
„TimeZone”: „GMT”

])

Teraz zapytanie o wstawienie dokumentów pokazuje, że dokumenty są z powodzeniem przechowywane w kolekcji „Datesheet”. Możemy go użyć w stosunku do operatora $ DATFROMString, w którym pole z datą ciągów jest konwertowane w obiekcie daty MongoDB.


Uznany: prawda,
InsertedIds: '0': 1, „1”: 2, „2”: 3, „3”: 4, „4”: 5

Przykład 1: Korzystanie z operatora DateFromString MongoDB $, aby uzyskać obiekt daty

$ DATFROMString jest wdrażany dla transformacji określonej daty w obiekt daty. Podaliśmy dokument, do którego chcemy tej transformacji. Dokument jest podany jako wyrażenie „_id: 1 na etapie $ mecz. Po pierwsze, dokument o wartości „_id”, który jest przechowywany jako „1”, jest dopasowany do kolekcji „Datesheet”. Następnie wykonuje się operator projektu $. Operator $ Project jest ustawiony z atrybutem „DateObject”, w którym wywołuje operator $ DATFROMString dla operacji transformacji daty.

Operator $ DATFROMString jest przekazywany z argumentem „datestring”, w którym zdefiniowane jest pole „$ data”, które należy przekształcić w obiekt daty. Następnie przekazujemy argument „stref czasowy” operatorowi $ DATEFROMString z strefą czasową „America/New_York”.

db.Arkusz dateshe.agregować ([
$ match: _id: 1,

$ projekt:
DateObject:
$ datefromString:
Datestring: „$ data”,
strefa czasowa: „America/New_York”



])

Wspomniany operator $ DATEFROMSTRING zwraca następujące wyniki, w których każde pole daty jest zmieniane na amerykańskie daty:

[_id: 1, DateObject: Isodate („2023-04-30T04: 00: 00.000Z ")]

Przykład 2: Korzystanie z operatora DateFromString MongoDB $ z parametrem Oneerror

Operator $ DATFROMString rzuca błąd, jeśli zbiór zawiera dokumenty z ciągami dat, których nie można przeanalizować, chyba że przekazamy instrukcję agregacji do dodatkowego parametru Oneerror. Nieprawidłowa data jest zwracana w pierwotnej wartości ciągu za pośrednictwem parametru OneStor. Mamy dokument o wartości „_id” „5”, którego pole $ data zapewnia nieprawidłowe wartości daty. Najpierw dopasowujemy ten dokument do sceny $ mecz. Następnie używamy operatora projektu $, aby wywołać działanie operatora $ DATFROMString. Operator $ DATFROMString jest zdefiniowany z parametrem wejściowym „datestring”, w którym przypisane jest pole $ data.

Następnie definiujemy parametr strefy czasowej z czasem wschodnim. Następnie parametr „Oneerror” jest ustawiany z komunikatem o błędzie, który jest generowany, gdy $ DATFROMString napotyka błąd, jednocześnie przekształcając datę ciągu w obiekt daty.

db.Arkusz dateshe.agregować ([
$ match: _id: 5,

$ projekt:
DateObject:
$ datefromString:
Datestring: „$ data”,
strefa czasowa: „America/New_York”,
Oneerror: „Wystąpił wyjątek podczas analizowania daty ciągu”



])

Od „20211-03-05T04: 35: 01.066 ”Data ciągu jest nieprawidłowa, serwer MongoDB generuje komunikat o błędzie ustawiony w parametrze OneRoror.

[[[

_id: 5,
DateObject: „Wystąpił wyjątek podczas analizowania daty ciągu”

]

Przykład 3: Korzystanie z MongoDB $ DateFromString z parametrem OnNull

Gdy NULL jest umieszczona w polu daty, możemy wymagać, aby $ dateFromString dostarczyć datę odpowiadającą epokom unix. Wszelkie prawidłowe wyrażenie można wykorzystać jako wartość argumentu OnNull. Tutaj mamy dokument o polu daty jako „null”. Etap $ mecz pasuje do dokumentu, który ma być analizowany przez $ DATFROMString Operator. Przypisujemy pole „$ data” w argumencie „datestring”, a także parametrze strefy czasowej z polem $ strefone do operatora $ DATEFROMSTRING. Następnie mamy parametr OnNull, który przypisuje nową datę (0), aby zwrócić obiekt daty epoki.

db.Arkusz dateshe.agregować ([
$ match: _id: 4,

$ projekt:
data:
$ datefromString:
Datestring: „$ data”,
strefa czasowa: „$ stref time”,
OnNull: Nowa data (0)



])

Ponieważ data nie jest ustawiona w dokumencie i zawiera wartość zerową, wynikająca z tego angażowana data zwracana przez poprzednie zapytanie upłynęła od 1 stycznia 1970 r.

[_id: 4, data: izodat („1970-01-01T00: 00: 00.000Z ")]

Przykład 4: Korzystanie z operatora DateFromString MongoDB $ z parametrem formatu

Możemy dostosować format za pomocą opcjonalnego argumentu formatu operatora $ DATEFROMString dla podanego ciągu daty/czasu. Domyślny format obiektu daty to „%y-%m-%dt%h:%m:%s.%Lz ”, który jest zwracany przez $ DATFROMString Operator we poprzednich przykładach. Przekształcamy dokument określony na etap $ mecz. Dokument ma wartość daty ciągłej „02/02/2021”, w której 10. wartość może być datą lub miesiącem. Podobnie wartość „02” w określonej dniu może być datą lub miesiącem.

W tym celu ustawiamy parametr „Format” w $ DATFromString Operator. Aby dokładnie określić, który z nich, opcja „format” jest używana w formacie „%m/%d/%y”. Operator $ DATFROMString analizuje określoną datę dokumentu w obiekcie daty w danej specyfikacji formatu.

db.Arkusz dateshe.agregat([
$ match: _id: 3,

$ projekt:
data:
$ datefromString:
Datestring: „$ data”,
Format: „%m/%d/%y”




])

Data ciągu jest analizowana w obiekcie daty określonego formatu.

[_id: 3, data: izodat („2021-10-02T00: 00: 00.000Z ")]

Przykład 5: Korzystanie z operatora DateFromString MongoDB $, aby uzyskać obiekt daty w formacie ISO Week

Możemy również wyrazić daty w formacie ISO 8601 z kilkoma różnymi specyfikatorami formatu. Używamy dokumentu „_id” równego „2”, aby uzyskać przeanalizowany obiekt w formacie ISO Week. Ustawiamy specyfikację parametru formatu jako „%u-%v-%g” w ramach operatora $ DATEFROMString. „U” oznacza rok, „V” wskazuje dni w tygodniu, a „G” reprezentuje rok tygodnia w formacie ISO 8601.

db.Arkusz dateshe.agregat([
$ match: _id: 2,

$ projekt:
data:
$ datefromString:
Datestring: „$ data”,
Format: „%u-%v-%g”




])

Data ciągu „1-5-2021” dopasowanego dokumentu jest przeanalizowana na datę formatu tygodnia ISO, jak pokazano następująco:

[_id: 2, data: izodat („2021-02-01T00: 00: 00.000Z ")]

Wniosek

W tym artykule zawiera całą wiedzę informacyjną dotyczącą operatora $ DateFromString w MongoDB. Użyliśmy operatora $ DATFROMString, aby przeanalizować datę formatu ciągu w obiekcie daty. $ DATFROMOPERator jest tutaj używany wraz z opcjonalnym parametrem do zbadania działania tych parametrów w celu przekształcenia wartości daty ciągu. Ponadto zastosowaliśmy $ DATEFROMString, aby przekształcić ciąg w dane specyfikacje formatu.