Operador MongoDB $ DateFromstrings

Operador MongoDB $ DateFromstrings
O tubo de agregação $ DateFromString Operator of MongoDB altera uma string de data/hora em um objeto de data. A data de datefromstring deve ser fornecida com o argumento de DataString, onde o valor da data é atribuído para ser transformado. O operador $ DateFromString também inclui parâmetros de fuso horário, formato, Oneerror e OnNull, que são opcionais. Também inclui alguns recursos extras, como a capacidade de personalizar o formato da data e do fuso horário. Assim, com o $ datefromstring, podemos converter as datas do tipo string no objeto de data.

Como o operador $ DateFromString funciona em MongoDB

O uso do operador $ DateFromString em MongoDB é converter o formulário de string de uma data no objeto Data. Aqui, convertemos a data da string dos documentos especificados na coleção MongoDBB. Geramos a coleção "Datasheet" dentro da concha do MongoDB, onde seguimos a seguinte consulta para inserir alguns documentos dentro dela. Esses documentos são inseridos com o campo que contém a data da string.

dB.Datesheet.InsertMany ([

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

"_id": 2,
"Data": "1-5-2021",
fuso horário: "UTC"
,

"_id": 3,
"Data": "10/02/2021",
"Timebone": "America/New_york"
,

"_id": 4,
"Data": NULL,
"Timebone": "UTC"
,

"_id": 5,
"Data": "20211-03-05T04: 35: 01.066 ",
"Timebone": "GMT"

]))

Agora, a consulta de inserir os documentos mostra que os documentos são armazenados com sucesso na coleção "Datesheet". Podemos usá -lo sobre o $ DateFromString Operator, onde o campo com a data da string é convertido no objeto Data do MongoDBB.


reconhecido: verdadeiro,
inserdIds: '0': 1, '1': 2, '2': 3, '3': 4, '4': 5

Exemplo 1: Usando o operador MongoDB $ DateFromString para obter o objeto Data

O $ DateFromString é implantado para a transformação da data especificada no objeto Data. Demos um documento ao qual queremos esta transformação. O documento é dado como a expressão "_id: 1" para o estágio $ da partida. Primeiro, o documento com o valor "_id" que é armazenado como "1" é comparado dentro da coleção "Datesheet". Em seguida, o operador de $ Project é executado. O operador de projeto $ está definido com o atributo "dateObject", onde o operador $ datefromstring é chamado para a operação de transformação de data.

O $ DATEFromString Operator é passado com o argumento "Datestring" em que o campo "$ data" é definido que precisa ser transformado em um objeto de data. Depois disso, passamos o argumento do “fuso horário” para o operador $ DateFromString com um fuso horário de “America/New_york”.

dB.Datesheet.agregado ([
$ Match: _id: 1,

$ projeto:
DateObject:
$ datefromstring:
DATESTRING: '$ data',
fuso horário: 'America/new_york'



])

O Operador $ DateFromString acima mencionado retorna os seguintes resultados, onde cada campo de data é alterado para American DateTime:

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

Exemplo 2: Usando o operador MongoDB $ DateFromString com o parâmetro OnError

O $ DateFromString Operator lança um erro se sua coleção contiver documentos com seqüências de dados que não podem ser analisadas, a menos que passemos uma declaração de agregação para o parâmetro adicional do OnError. A data inválida é retornada em seu valor original da string através do parâmetro OnError. Temos um documento com o valor "_id" de "5" cujo campo de data de $ fornece os valores de data inválida. Combinamos esse documento primeiro com o estágio $ da partida. Depois disso, usamos o operador do projeto $ para chamar a operação do $ DATEFROMSTRING Operator. O $ DATEFromString Operator é definido com o parâmetro de entrada "DATEstring", onde o campo de data $ é atribuído.

Em seguida, definimos o parâmetro do fuso horário com a hora oriental. Em seguida, o parâmetro "OnError" é definido com a mensagem de erro que é gerada quando o $ datefromstring encontra o erro ao transformar a data da string no objeto Data.

dB.Datesheet.agregado ([
$ Match: _id: 5,

$ projeto:
DateObject:
$ datefromstring:
DATESTRING: '$ data',
fuso horário: 'America/new_york',
OnError: "ocorreu uma exceção ao analisar a data da string"



])

Desde o “20211-03-05T04: 35: 01.A data da string de 066 ”não é válida, o servidor MongoDB gera a mensagem de erro definida no parâmetro OnError.

[[

_id: 5,
DateObject: 'ocorreu uma exceção ao analisar a data da string'

]

Exemplo 3: Usando o mongodb $ datefromstring com o parâmetro onNull

Quando o NULL é colocado em relação ao campo de data, podemos exigir que o $ DateFromString forneça uma data que corresponde à época do Unix, em vez de NULL do argumento OnNull. Qualquer expressão válida pode ser utilizada como o valor para o argumento onnull. Aqui, temos um documento com o campo de data como "nulo". A fase $ da partida corresponde ao documento a ser analisado pelo Operador $ DATEFROSTRING. Atribuímos o campo de data "$ data" no argumento "Datestring" e também o parâmetro do fuso horário com o campo de fuso time. Depois disso, temos o parâmetro onNull que atribui uma nova data (0) para retornar o objeto Data da época.

dB.Datesheet.agregado ([
$ Match: _id: 4,

$ projeto:
data:
$ datefromstring:
DATESTRING: '$ data',
fuso horário: '$ timegone',
OnNull: New Date (0)



])

Como a data não está estabelecida no documento e contém o valor nulo, a data analisada resultante que é retornada pela consulta anterior foi decorrida desde 1º de janeiro de 1970.

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

Exemplo 4: Usando o operador MongoDB $ DateFromString com o parâmetro de formato

Podemos personalizar o formato usando o argumento do formato opcional do $ DATEFROMSTRING Operator para a string de data/hora fornecida. O formato padrão do objeto Data é “%y-%m-%dt%h:%m:%s.%LZ ”, que é devolvido pelo operador $ DateFromString nos exemplos anteriores. Transformamos o documento especificado no estágio $ da partida. O documento tem o valor da data da string de "10/02/2021", onde o 10º valor pode ser a data ou um mês. Da mesma forma, o valor "02" na data especificada pode ser a data ou um mês.

Para isso, definimos o parâmetro "formato" no Operador $ DateFromString. Para especificar com precisão qual deles, a opção "formato" é usada no formato "%m/%d/%y". O $ DateFromString Operator analisa a data especificada do documento no objeto Data na especificação de formato fornecida.

dB.Datesheet.agregar([
$ Match: _id: 3,

$ projeto:
data:
$ datefromstring:
DATESTRING: '$ data',
formato: "%m/%d/%y"




]))

A data da string é analisada no objeto Data do formato especificado.

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

Exemplo 5: Usando o operador MongoDB $ DateFromString para obter o objeto Data no formato da semana ISO

Também podemos expressar as datas no formato ISO 8601 com alguns especificadores de formato diferentes. Usamos o documento de "_id" igual a "2" para obter o objeto de data analisada no formato da semana ISO. Definimos a especificação do parâmetro de formato como "%u-%v-%g" dentro do operador $ datefromstring. O "U" indica o ano, "V" indica os dias da semana, e "G" representa o ano da semana no formato ISO 8601.

dB.Datesheet.agregar([
$ Match: _id: 2,

$ projeto:
data:
$ datefromstring:
DATESTRING: '$ data',
formato: "%u-%v-%g"




]))

A data da string "1-5-2021" do documento correspondente é analisada na data do formato da semana ISO, como mostrado no seguinte:

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

Conclusão

Este artigo contém todo o conhecimento informativo sobre o $ DateFromString Operator of MongoDB. Usamos o $ DateFromString Operator para analisar a data do formato da string no objeto Data. O $ DateFromOperator é usado aqui junto com seu parâmetro opcional para explorar o funcionamento desses parâmetros para transformar o valor da data da string. Além disso, empregamos o $ DateFromString para transformar a string em especificações de formato fornecidas.