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.