MongoDB $ datefromstrings operatore

MongoDB $ datefromstrings operatore
L'operatore di MongoDB di Aggregation Pipeline $ Date Date. Il $ DateFromString deve essere fornito con l'argomento DateString in cui viene assegnato il valore della data. L'operatore $ datefromstring include anche i parametri di fuso orario, formato, onerror e onnull che sono opzionali. Include anche alcune funzionalità extra, come la possibilità di personalizzare il formato della data e del fuso orario. Pertanto, con $ datefromstring, possiamo convertire le date di tipo stringa nell'oggetto data.

Come funziona l'operatore $ datefromstring in mongodb

L'uso dell'operatore $ datefromstring in mongoDB è convertire il modulo di stringa di una data nell'oggetto della data. Qui, convertiamo la data della stringa dei documenti specificati nella raccolta MongoDB. Generiamo la collezione "Datesheet" all'interno della shell Mongodb dove seguiamo la seguente query per inserire alcuni documenti al suo interno. Questi documenti sono inseriti con il campo che contiene la data della stringa.

db.Foglio degli appuntamenti.InsertMany ([

"_id": 1,
"Data": "2023-04-30",
"Timezone": "America/New_york"
,

"_id": 2,
"Data": "1-5-2021",
fuso orario: "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"

])

Ora, la domanda di inserimento dei documenti mostra che i documenti sono archiviati correttamente nella collezione "Datesheet". Possiamo usarlo tramite l'operatore $ datefromstring in cui il campo con la data di stringa viene convertito nell'oggetto data di MongoDB.


riconosciuto: vero,
inseritedids: '0': 1, '1': 2, '2': 3, '3': 4, '4': 5

Esempio 1: utilizzando l'operatore MongoDB $ DateFromString per ottenere l'oggetto data

$ Datefromstring viene distribuito per la trasformazione della data specificata nell'oggetto data. Abbiamo dato un documento a cui vogliamo questa trasformazione. Il documento è dato come espressione "_id: 1" allo stadio $ match. Innanzitutto, il documento con il valore "_id" che viene archiviato come "1" è abbinato nella raccolta "Datesheet". Quindi, viene eseguito l'operatore del progetto $. L'operatore del progetto $ è impostato con l'attributo "DateObject" in cui è richiesto l'operatore $ DateFromString per l'operazione di trasformazione della data.

L'operatore $ datefromstring viene approvato con l'argomento "datestring" in cui è definito il campo "$ date" che deve essere trasformato in un oggetto di data. Successivamente, passiamo l'argomento "fuso orario" all'operatore $ datefromstring con un fuso orario di "America/New_york".

db.Foglio degli appuntamenti.aggregato ([
$ match: _id: 1,

$ Progetto:
DateObject:
$ datefromstring:
DateString: '$ data',
Timezone: 'America/New_york'



])

Il suddetto operatore $ datefromstring restituisce i seguenti risultati in cui ogni campo di data viene modificato in American DateTime:

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

Esempio 2: Utilizzo dell'operatore MongoDB $ DateFromString con il parametro ONERROR

L'operatore $ datefromstring genera un errore se la raccolta contiene documenti con stringhe di data che non possono essere analizzate a meno che non passiamo una dichiarazione di aggregazione al parametro aggiuntivo ONERROR. La data non valida viene restituita nel suo valore di stringa originale tramite il parametro ONERROR. Abbiamo un documento con il valore "_id" di "5" il cui campo $ data fornisce i valori della data non validi. Abbiniamo prima quel documento con $ Match Stage. Successivamente, utilizziamo l'operatore $ Project per chiamare il funzionamento dell'operatore $ DateFromString. L'operatore $ datefromstring è definito con il parametro di input "datestring" in cui è assegnato il campo $ data.

Successivamente, definiamo il parametro del fuso orario con il tempo orientale. Quindi, il parametro "Onerror" è impostato con il messaggio di errore che viene generato quando $ DateFromString incontra l'errore mentre trasforma la data della stringa nell'oggetto data.

db.Foglio degli appuntamenti.aggregato ([
$ match: _id: 5,

$ Progetto:
DateObject:
$ datefromstring:
DateString: '$ data',
Timezone: 'America/New_york',
ONERROR: "Si è verificata un'eccezione durante l'analisi della data della stringa"



])

Dal "20211-03-05T04: 35: 01.La data di stringa 066 "non è valida, il server MongoDB genera il messaggio di errore set nel parametro ONERROR.

[

_id: 5,
DateObject: "Si è verificata un'eccezione durante l'analisi della data della stringa"

"

Esempio 3: Utilizzo di MongoDB $ dateFromString con il parametro Onnull

Quando Null è posto contro il campo della data, possiamo richiedere a $ datefromstring di fornire una data che corrisponde all'epoca unix piuttosto che null dall'argomento Onnull. Qualsiasi espressione valida può essere utilizzata come valore per l'argomento onnull. Qui, abbiamo un documento che ha il campo della data come "null". La fase di $ Match corrisponde al documento che verrà analizzato dall'operatore $ datefromstring. Assegniamo il campo Data "$ Data" nell'argomento "DateString" e anche il parametro del fuso orario con il campo $ timezone all'operatore $ datefromstring. Successivamente, abbiamo il parametro Onnull che assegna una nuova data (0) per restituire l'oggetto Data EPOCH.

db.Foglio degli appuntamenti.aggregato ([
$ match: _id: 4,

$ Progetto:
data:
$ datefromstring:
DateString: '$ data',
fuso orario: "$ timezone",
Onnull: nuova data (0)



])

Poiché la data non è impostata nel documento e contiene il valore nullo, la data analizzata risultante che viene restituita dalla query precedente è trascorsa dal 1 ° gennaio 1970.

[_id: 4, data: isodate ("1970-01-01t00: 00: 00.000Z ")]

Esempio 4: Utilizzo dell'operatore MongoDB $ DateFromString con il parametro Format

Possiamo personalizzare il formato utilizzando l'argomento del formato opzionale dell'operatore $ datefromstring per la stringa di data/ora fornita. Il formato predefinito dell'oggetto data è “%y-%m-%dt%h:%m:%s.%Lz "che viene restituito dall'operatore $ datefromstring negli esempi precedenti. Trasformiamo il documento specificato nella fase di $ match. Il documento ha il valore della data di stringa di "10/02/2021" in cui il decimo valore può essere la data o un mese. Allo stesso modo, il valore "02" nella data specificata può essere la data o un mese.

Per questo, impostiamo il parametro "formato" nell'operatore $ datefromstring. Per specificare con precisione quale, l'opzione "formato" viene utilizzata nel formato "%m/%d/%y". L'operatore $ datefromstring analizza la data specificata del documento nell'oggetto data nella specifica del formato indicato.

db.Foglio degli appuntamenti.aggregato([
$ match: _id: 3,

$ Progetto:
data:
$ datefromstring:
DateString: '$ data',
Formato: "%m/%d/%y"




])

La data della stringa viene analizzata nell'oggetto della data del formato specificato.

[_id: 3, data: isodate ("2021-10-02t00: 00: 00.000Z ")]

Esempio 5: Utilizzo dell'operatore MongoDB $ DateFromString per ottenere l'oggetto data in formato della settimana ISO

Possiamo anche esprimere le date in formato ISO 8601 con alcuni specificatori di formato diversi. Usiamo il documento di "_id" uguale a "2" per ottenere l'oggetto della data analizzata nel formato della settimana ISO. Impostamo le specifiche del parametro del formato come "%u-%v-%g" all'interno dell'operatore $ datefromstring. La "U" indica l'anno, "V" indica i giorni della settimana e "G" rappresenta l'anno della settimana in formato ISO 8601.

db.Foglio degli appuntamenti.aggregato([
$ match: _id: 2,

$ Progetto:
data:
$ datefromstring:
DateString: '$ data',
Formato: "%u-%v-%g"




])

La data di stringa "1-5-2021" del documento abbinato viene analizzata nella data del formato della settimana ISO come mostrato da segue:

[_id: 2, data: isodate ("2021-02-01t00: 00: 00.000Z ")]

Conclusione

Questo articolo contiene tutte le conoscenze informative relative all'operatore di $ DateFromString di MongoDB. Abbiamo usato l'operatore $ datefromstring per analizzare la data del formato stringa nell'oggetto data. $ Datefromoperator viene utilizzato qui insieme al suo parametro opzionale per esplorare il funzionamento di questi parametri per trasformare il valore della data della stringa. Inoltre, abbiamo impiegato $ datefromstring per trasformare la stringa nelle specifiche del formato fornite.