MongoDB $ DATEFROMPTS e $ DATETOPARTS OPERADORES

MongoDB $ DATEFROMPTS e $ DATETOPARTS OPERADORES
Os operadores MongoDB $ DATEFROTS e $ DATETOPARTS fazem parte do método de agregação. Esses operadores são usados ​​para realizar a operação de data em MongoDBB. O operador $ DATEFROMPTS cria e retorna um documento com a estrutura de data das partes constituintes da data em MongoDBB. É preciso um campo individual para cada constituinte de data. Enquanto o operador $ DateToparts fornece um documento com recursos individuais para cada parte de um valor de data do BSON especificado. As peças de data que são devolvidas do operador $ DateToparts são passadas como parâmetros dentro do operador $ DATEFROTS.

Como os $ DateFrompartts e $ DateToparts funcionam em MongoDB

O uso das $ DATEFROMPTS e dos Operadores $ DateToparts são demonstrados aqui para buscar as datas de acordo. Exigimos a coleção de MongoDB, que é utilizada para trabalhar com esses operadores. Damos uma coleção "Childbirthate", onde os seguintes documentos são inseridos usando o comando de inserção do MongoDBB.

dB.Childbirthdate.InsertMany ([

"_id": 1,
"BIORH_YEAR": 2021,
"BIORH_MONTH": 09,
"Birth_day": 21,
"BIORH_HOUR": 15,
"BIORH_MINUTE": 60,
"BIORH_SEGOND": 31
,

"_id": 2,
"BIORH_YEAR": 2021,
"BIORH_MONTH": 09,
"Birth_day": 21,
"BIORH_HOUR": 15,
"BIORH_MINUTE": 60,
"BIORH_SEGOND": 31,
,

"_id": 3,
"BIORH_YEAR": 2023,
"BIORH_MONTH": 16,
"Birth_day": 90,
"BIORH_HOUR": 47,
"BIORH_MINUTE": 190,
"BIORH_SEGOND": 697
,

"_id": 4,
"BIORH_YEAR": 2022,
"BIORH_MONTH": 0,
"Birth_day": 0,
"BIORH_HOUR": 0,
"BIORH_MINUTE": 0,
"Birth_second": 0
,

"_id": 5,
"Child_name": "Emily",
"DOB": ISODATE ("2023-01-06T22: 35: 12.130Z ")
,

"_id": 6,
"Child_name": "Kim",
"DOB": ISODATE ("2022-11-05T23: 10: 16.125z ")

]))

Os documentos são inseridos na coleção fornecida, conforme mostrado na saída anterior. Podemos usar esses documentos para consultar os $ DATEFROMPARTS e $ DATETOPARTS Operadores. Observe que usamos o operador $ DateFromcarts nos quatro primeiros documentos, porque as datas nesses documentos são divididas. Além disso, o operador $ DateToparts usa os dois últimos documentos, pois eles contêm os objetos de data única.


reconhecido: verdadeiro,
inserdids: '0': 1, '1': 2, '2': 3, '3': 4, '4': 5, '5': 6

Exemplo 1: Usando o operador $ datefromcarts em mongodb

O operador $ DATEFROMPTS é usado aqui no primeiro documento da coleção especificada para obter o objeto de data única. A expressão “_id: 1” é especificada para o estágio $ da partida. Em seguida, temos a fase $ do projeto em que o campo "Dateresult" é inserido para implantar o operador $ DATEFROTS. O $ DATEFROMPARTS Operador insere os parâmetros constituintes da data, juntamente com os campos especificados do documento correspondente para fornecer o objeto Data.

dB.Childbirthdate.agregar([
$ Match: _id: 1,

$ projeto:
Dateresult:
$ DATEFROMPARTS:
"Ano": "$ bift_year", "mês": "$ bift_month", "dia": "$ bift_day", "hour": "$ bift_hour"




]))

A única data é recuperada de todas as partes das datas na saída pelo operador $ DATEFROMPTS.

[_id: 1, Dateresult: Isodate ("2021-09-21T15: 00: 00.000Z ")]

Exemplo 2: Usando o operador $ DATEFROTS com um fuso horário especificado em MongoDB

Também podemos usar o parâmetro do fuso horário dentro da operadora $ DateFromcarts para obter o objeto Data de um determinado fuso horário. Primeiro, usamos o operador de Match $ para corresponder ao documento predefinido que é “_id: 2”. Em seguida, invocamos o operador $ DateFromcarts no campo "Data" da fase $ do projeto. Usamos todos os parâmetros de data necessários para obter o objeto Data, além do parâmetro "fuso horário". O "fuso horário" recebe um fuso horário de "Europa/Londres" para obter a data resultante nessa zona especificada.

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

$ projeto:
data:
$ DATEFROMPARTS:
"Ano": "$ bift_year", "mês": "$ bift_month",
"DIA": "$ bift_day", "hour": "$ bift_hour",
"Minute": "$ bift_minute", "Second": "$ bift_second", "Filho horário": "Europa/Londres"



]))

O operador $ DATEFROMPTS retorna o seguinte objeto Data do fornecimento horário especificado:

[_id: 2, data: isodate ("2021-09-21T15: 00: 31.000Z ")]

Exemplo 3: Usando o operador $ datefromcarts com uma gama maior de datas em MongoDB

Aqui, obtemos o objeto de data do segundo documento cujas partes das partes são maiores que o intervalo. Dentro do operador $ DateFromcarts, usamos os parâmetros constituintes para gerar um único objeto da data a partir do intervalo que é maior que os valores de data especificada. Definimos os campos dos documentos de acordo com os parâmetros constituintes especificados. A operadora $ DATEFROMPTS aumenta o ano "2023" para "2024" e depois define o valor do mês para "12" para dar o objeto de data única dos valores de data inválida.

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

$ projeto:
DateFromparts:
$ DATEFROMPARTS:
"Ano": "$ bift_year",
"mês": "$ bift_month",
"DIA": "$ birth_day",
"Hora": "$ bift_hour",
"minuto": "$ bift_minute",
"Segundo": "$ bift_second"




]))

Como visto na saída, os constituintes da data na data retornada diferem dos valores de data correspondentes no documento. O motivo é que a data foi recalculada por $ DateFromparts para levar em consideração os parâmetros da data que estão fora do intervalo esperado.

[_id: 3, DateFromparts: isodate ("2024-07-01T02: 21: 37.000Z ")]

Exemplo 4: Usando o operador $ DATEFROTS com um intervalo menor que as datas especificadas em MongoDB

Agora, temos outro caso da operadora $ DateFromcarts, onde os valores da data são menores que o intervalo válido de datas. Combinamos o documento que contém os campos de data e hora além de seus respectivos intervalos aceitáveis. O documento cujo "_id" é "3" é passado dentro da expressão de estágio $ da partida. Depois disso, criamos o campo "DateFromcarts" no estágio $ Project. O campo "DateFromcarts" é empregado com o operador $ DATEFROMPTS. O operador $ DateFromcarts é passado com seus parâmetros associados para obter o objeto Data. Como temos todos os valores dos parâmetros de data no documento correspondente que são zero, que são menores que os valores mínimos da data dos intervalos, o operador $ DateFromcarts redefine todos os parâmetros da data primeiro para gerar o objeto de data única.

dB.Childbirthdate.agregar([
$ Match: _id: 4,

$ projeto:
DateFromparts:
$ DATEFROMPARTS:
"Ano": "$ bift_year",
"mês": "$ bift_month",
"DIA": "$ birth_day",
"Hora": "$ bift_hour",
"minuto": "$ bift_minute",
"Segundo": "$ bift_second"




]))

A data de ISO single resultante é formada no seguinte pelo Operador $ DATEFROMPTS, que cai no ano “2022” por um e limita o mês a 12.

[_id: 4, DateFromparts: Isodate ("2021-11-30T00: 00: 00.000Z ")]

Exemplo 5: Usando o operador $ DateToparts em MongoDB

Agora, usamos outro operador $ DateToparts do qual as peças da data são obtidas. Aqui, temos uma demonstração simples em que combinamos com o "_id" cujo valor é "5" no estágio inicial. Depois de corresponder ao documento, o estágio $ projeto obtém os resultados do operador $ DateToparts no campo "DateInParts". O $ DATETETOPTS Operador insere o parâmetro "Date", que é fornecido com o campo "$ DOB". O campo $ DOB possui o objeto de data que é separado nas partes da data pelo operador $ DateToparts.

dB.Childbirthdate.agregar(
[[
$ Match: _id: 5,

$ projeto:

_id: 0,
DateInParts: $ DATETOPARTS: DATE: "$ DOB"


]
)

O operador $ dateToparts retorna as seguintes partes da data do campo $ DOB do documento correspondente:

[[

DateInParts:
Ano: 2023,
mês: 1,
Dia: 6,
Hora: 22,
Minuto: 35,
Segundo: 12,
milissegundo: 130


]

Exemplo 6: Usando o operador $ dateToparts para formato de data da semana ISO em MongoDB

Podemos usar a opção ISO8601 com o valor verdadeiro para atualizar o documento retornado para usar os campos de data da semana ISO. A data é calculada usando a especificação ISO 8601. Considere que modificamos o documento que possui o "_id" igual ao valor de "5". Nesse documento, aplicamos o operador $ DateToparts, onde o parâmetro "Data" é definido com o campo "$ DOB". O parâmetro "ISO8601" também é fornecido com o valor que é definido como "true".

dB.Childbirthdate.agregar(
[[
$ Match: _id: 5,

$ projeto:
_id: 0,
datePartsiso:
$ datetopartts:
Data: "$ DOB",
ISO8601: Verdadeiro




]
).bonito()

As partes da data desse documento são obtidas do operador $ DateToparts que contém os valores de campo e data da semana ISO.

[[

datePartsiso:
ISOWEEEKEEAR: 2023,
Isoweek: 1,
Isodayofweek: 5,
Hora: 22,
Minuto: 35,
Segundo: 12,
milissegundo: 130


]

Conclusão

Este artigo explicou os termos do método do pipeline de agregação do MongoDB, $ datefrompartts e $ datetopartts. As operadoras $ DATEFROMPTS e $ DATETOPARTS funcionam de forma oposta entre si. A operadora $ DATEFROMPTS fornece a data do formato ISO a partir da data das partes. Por outro. Exploramos esses operadores com casos simples e complexos de exemplos para esclarecer o conceito de usar as operadoras $ DateFromparts e $ DateToparts em MongoDBB.