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.