Como usar os operadores MongoDB $ DATADD e $ Datesubtract
Aqui, usamos os $ DATADD e $ Datesubtract Operadores em MongoDB, que retornam as datas esperadas de acordo com o operador especificado. Considere a coleção "OnLinedElivery", onde inserimos alguns documentos com o método InsertMany (). Esses documentos são usados sobre os operadores $ DATADD e $ Datesubtract para demonstrar seu desempenho no MongoDBB.
dB.onLinedelivery.InsertMany (
[[
Id: 05,
OrderDate: Isodate ("2021-12-30"),
PAGENSDATE: ISODATE ("2022-02-19T15: 20: 00"),
Localização: "America/New_york",
Id: 09,
OrderDate: Isodate ("2022-01-18"),
PAGENSDATE: ISODATE ("2023-01-04T16: 10: 00"),
Localização: "America/New_york",
Id: 45,
OrderDate: Isodate ("2020-03-24"),
PAGENSDATE: ISODATE ("2021-05-31T21: 00: 00"),
Localização: "America/New_york",
Id: 55,
OrderDate: Isodate ("2023-09-20"),
PAGENDDATE: ISODATE ("2023-12-31T21: 00: 00"),
Localização: "America/New_york"
]
)
Após a inserção dos documentos anteriores na coleção "OnLineDelivery", a saída é representada como no seguinte, que reconhece que os documentos são adicionados:
reconhecido: verdadeiro,
inserdids:
'0': objectId ("63C298E9AD100B03EAD18BEE"),
'1': objectId ("63C298E9AD100B03EAD18BEF"),
'2': objectId ("63C298E9AD100B03EAD18BF0"),
'3': objectId ("63C29CEFAD100B03EAD18BF4")
Exemplo 1: Usando o Operador $ DATADD em MongoDB
O operador $ DATADD é usado para configurar a data futura da data original especificada. Aqui, o operador $ DATADD está empregado no campo de operador de projeto $, "DeliveryDate". Queremos a data de entrega esperada da data do pedido. Portanto, dentro do operador $ DATADD, definimos o parâmetro "startDate" necessário com o campo "OrderDate". O parâmetro "startdate" deve ser a data de início no formato UTC. Depois disso, temos um parâmetro "unidade" que é especificado com o valor "dia". O parâmetro "unidade" indica o incremento de tempo que é anexado ao "startdate". Em seguida, fornecemos o parâmetro "quantidade" com o número "4" que adiciona quatro dias ao "startdate".
dB.onLinedelivery.agregar(
[[
$ projeto:
Data de entrega:
$ DATADD:
StartDate: "$ orderdate",
unidade: "dia",
Valor: 4
]))
As datas do pedido são incrementadas por uma unidade "4" que é exibida no campo "DeliveryDate". Essas datas são os tempos esperados para entregar o pedido.
[[
_id: objectId ("63C298E9AD100B03EAD18BEE"),
DeliveryDate: Isodate ("2022-01-03T00: 00: 00.000Z ")
,
_id: objectId ("63C298E9AD100B03EAD18BEF"),
DeliveryDate: Isodate ("2022-01-22T00: 00: 00.000Z ")
,
_id: objectId ("63C298E9AD100B03EAD18BF0"),
DeliveryDate: Isodate ("2020-03-28T00: 00: 00.000Z ")
,
_id: objectId ("63C29CEFAD100B03EAD18BF4"),
DeliveryDate: Isodate ("2023-09-24T00: 00: 00.000Z ")
]
Exemplo 2: Usando o operador $ DATADD em MongoDB para filtrar uma variedade de data
Usamos o $ DATADD em um operador de match $ para construir um filtro que corresponda aos documentos dentro de uma faixa de datas que é determinada por um StartDate e um período de tempo especificado pelo $ DATADD Operator. Considere o script de MongoDB. Temos um estágio de Match $ dentro do método agregado. O estágio $ da partida é definido com o operador $ exp, onde a expressão condicional de $ GT é especificada. O operador $ GT corresponde ao documento que satisfaz a condição fornecida. Definimos o campo $ PAGENDATE no operador $ GT, que é comparado com a data obtida do operador $ DATADD.
Definimos o "StartDate" com os parâmetros "OrderDate" para o operador $ DATADD. A "unidade" é dada como "mês" e a "quantidade" a ser adicionada nas datas é dada como "13". Aqui, os documentos cujas datas de entrega são maiores que "13" meses do "OrderDate" são passadas para o operador de projeto $. Em seguida, o operador $ projeto é implantado com o campo "Ordem" que tem a expressão do operador $ DateToString para transformar as datas em um formato melhor legível.
dB.onLinedelivery.agregar(
[[
Match $:
$ EXPR:
$ gt:
["$ PAGENDATE",
$ DATADD:
StartDate: "$ orderdate",
Unidade: "mês",
Valor: 13
]
,
$ projeto:
_id: 0,
OrderDate: 1,
Ordem:
$ dateToString:
formato: "%y-%m-%d",
Data: "$ orderdate"
]))
Ao executar a consulta anterior, temos dois registros do operador $ DATADD que satisfaz a condição.
[[
OrderDate: Isodate ("2020-03-24T00: 00: 00.000Z "),
Ordem: '2020-03-24'
,
OrderDate: Isodate ("2020-03-24T00: 00: 00.000Z "),
Ordem: '2020-03-24'
]
Exemplo 3: Usando o Operador $ DATADD em MongoDB por uma hora
O $ DATADD Operator utiliza o tempo para executar os cálculos quando um fuso horário é definido. Aqui, usamos o operador $ DATADD para incrementar a data em uma hora. Para isso, temos que modificar o parâmetro "Unidade" do Operador $ DATADD. Demos um novo campo de “horas” no operador de projeto $. O campo "Horário" é definido ainda mais pelo operador "$ datetoString" para a conversão da data no formato String, que é retornado pelo Operador $ DATADD. O operador $ DATADD é especificado com o "StartDate", onde o campo $ orderdate é fornecido. Em seguida, usamos o parâmetro "Unidade" para definir a "hora" lá. Depois disso, definimos o parâmetro "Valor" como "24" e definimos o "fuso horário" com o campo "$ localização" quando o $ DATADD Operator incrementa a data em uma hora.
dB.onLinedelivery.agregar(
[[
$ projeto:
horas:
$ dateToString:
formato: "%y-%m-%d%h:%m",
data:
$ DATADD:
StartDate: "$ orderdate",
Unidade: "Hora",
Valor: 24,
fuso horário: "$ localização"
]
).bonito()
Recuperamos as mesmas datas que as datas originais, porque o operador $ DATADD adicionou as datas por horas no número “24” do número.
_id: objectId ("63C298E9AD100B03EAD18BEE"),
Horário: '2021-12-31 00:00'
,
_id: objectId ("63C298E9AD100B03EAD18BEF"),
Horário: '2022-01-19 00:00'
,
_id: objectId ("63C298E9AD100B03EAD18BF0"),
Horário: '2020-03-25 00:00'
]
Exemplo 4: Usando o Operador de Datesubtract $ em MongoDB para diminuir uma data
Nos casos anteriores do MongoDB, usamos o operador $ DATADD para obter a data esperada no futuro. Agora, usamos o Operador de Datesubtract $ MongoDB, que obtém a data prevista para a data atual dada. O $ Datesubtract Operator insere todos os parâmetros da mesma forma que os parâmetros no operador $ DATADD. Observe que usamos o $ Datesubtract dentro do campo "Espera -Ordesdate" do operador $ Project Operator. Lá, o $ Datesubtract Operator insere o parâmetro "StartDate" com o campo "$ PAYEMENTATE" para a subtração da data para obter a data esperada do pedido.
Em seguida, definimos o argumento da "unidade" com o "mês" para representar o tempo que é retirado do startdate. Em seguida, é o parâmetro "quantidade" que é definido com o número "2" para diminuir a data com este valor.
dB.onLinedelivery.agregar(
[[
$ projeto:
esperado térmico:
$ datesubtract:
StartDate: "$ PAGENSTATE",
Unidade: "mês",
Valor: 2
]))
As datas esperadas são devolvidas pelo operador $ Datesubtract, que são as datas dois meses antes das datas reais.
[[
_id: objectId ("63C298E9AD100B03EAD18BEE"),
esperanteDordate: isodate ("2021-12-19T15: 20: 00.000Z ")
,
_id: objectId ("63C298E9AD100B03EAD18BEF"),
esperanteDordate: isodate ("2022-11-04T16: 10: 00.000Z ")
,
_id: objectId ("63C298E9AD100B03EAD18BF0"),
esperanteDordate: isodate ("2021-03-31T21: 00: 00.000Z ")
]
Exemplo 5: Usando o Operador de Datesubtract $ em MongoDB para classificar com base em datas relativas
Além disso, podemos estabelecer um filtro de intervalo, dependendo do tempo de execução da consulta usando a expressão $ datesubtract. Empregamos o estágio de Match $ no método agregado para corresponder às datas relativas. O estágio de Match $ tem a expressão que é definida com o operador $ EXPR. O operador $ EXPR usa os operadores $ GT e $ Datesubtract para limitar os documentos correspondentes com um PaymentDate na última semana. O Operador de Datesubtract $ fornece a data atual do formato ISO, pois a variável $$ agora é especificada para o operador StartDate. Em seguida, a data de decréscimo obtida a partir do operador $ Datesubtract é transformada no formato da string pelo "$ datetoString", que é empregado dentro do Operador de Projeto $.
dB.onLinedelivery.agregar(
[[
Match $:
$ EXPR:
$ gt:
[[
"$ PAGENDATE",
$ datesubtract:
StartDate: "$$ agora",
Unidade: "Semana",
Valor: 1
]
,
$ projeto:
_id: 0,
ID: 1,
Pagamento:
$ dateToString:
formato: "%y-%m-%d",
Data: "$ PAGENSTATE"
]
)
Temos apenas um registro que é recuperado pelo operador $ Datesubtract.
[Id: 55, pagamento: '2023-12-31']
Conclusão
Os operadores de Dateadd e $ Datesubtract MongoDB $ são demonstrados neste guia. Usamos esses operadores com exemplos em que o parâmetro associado a cada operador é explorado. Primeiro, temos um exemplo de script do operador $ DATADD para adicionar as datas com uma determinada quantidade de um número com o fuso horário. O $ DATADD Operador é implantado para obter a data futura dentro de um intervalo e obter a data esperada, especificando a hora como uma unidade. Depois disso, o Operador de Datesubtract $ é explorado com o exemplo para obter as datas anteriores.