Menu Docs
Página inicial do Docs
/
Manual do MongoDB
/ / /

$dateToString (agregação)

Nesta página

  • Definição
  • Compatibilidade
  • Sintaxe
  • Especificadores de formato
  • Exemplo
$dateToString

Converte um objeto de data em uma string de acordo com um formato especificado pelo usuário.

Você pode utilizar o $dateToString para implantações hospedadas nos seguintes ambientes:

  • MongoDB Atlas: o serviço totalmente gerenciado para implantações MongoDB na nuvem

  • MongoDB Enterprise: a versão autogerenciada e baseada em assinatura do MongoDB

  • MongoDB Community: uma versão com código disponível, de uso gratuito e autogerenciada do MongoDB

A expressão $dateToString tem a seguinte sintaxe de expressão do operador:

{ $dateToString: {
date: <dateExpression>,
format: <formatString>,
timezone: <tzExpression>,
onNull: <expression>
} }

O $dateToString pega um documento com os seguintes campos:

Campo
Descrição
date

Alterado na versão 3.6.

A data para converter em string. <dateExpression> deve ser uma expressão válida que resolva para uma Date, um Timestamp ou um ObjectID.

format

Opcional. A especificação do formato de data. <formatString> pode ser qualquer string literal, contendo 0 ou mais especificadores de formato. Para obter uma lista de especificadores disponíveis, consulte Especificadores de formato.

Se não for especificado, $dateToString usará "%Y-%m-%dT%H:%M:%S.%LZ" como o formato padrão.

timezone

Optional. O fuso horário do resultado da operação. <tzExpression> deve ser uma expressão válida que resolva para uma string formatada como um Identificador de fuso horário Olson ou um Deslocamento UTC. Se nenhum timezone for fornecido, o resultado será exibido em UTC.

Formatar
Exemplos
Olson Timezone Identifier
"America/New_York"
"Europe/London"
"GMT"
UTC Offset
+/-[hh]:[mm], e.g. "+04:45"
+/-[hh][mm], e.g. "-0530"
+/-[hh], e.g. "+03"
onNull

Opcional. O valor a devolver se o date for nulo ou estiver ausente. Os argumentos podem ser qualquer expressãoválida.

Se não for especificado, $dateToString retornará nulo se date for nulo ou estiver ausente.

Dica

Veja também:

Os seguintes especificadores de formato estão disponíveis para uso no <formatString>:

Especificadores
Descrição
Valores possíveis
%b

Nome do mês abreviado (3 letras)

Novidades na versão 7.0.

jan-dec
%B

Nome do mês inteiro

Novidades na versão 7.0.

january-december
%d
Dia do mês (2 dígitos, zero acolchoado)
01-31
%G
Ano no formato ISO 8601
0000-9999
%H
Hora (2 dígitos, zero acolchoado, relógio de 24 horas)
00-23
%j
Dia do ano (3 dígitos, zero preenchido)
001-366
%L
Milissegundo (3 dígitos, zero preenchido)
000-999
%m
Mês (2 dígitos, zero preenchido)
01-12
%M
Minuto (2 dígitos, zero preenchido)
00-59
%S
Segundo (2 dígitos, zero preenchido)
00-60
%u
Número do dia da semana no formato ISO 8601 (1-segunda, 7-domingo)
1-7
%U
Semana do ano (2 dígitos, zero preenchido)
00-53
%V
Semana do ano no formato ISO 8601
01-53
%w
Dia da semana (1-domingo, 7-sábado)
1-7
%Y
Ano (4 dígitos, zero preenchido)
0000-9999
%z
Deslocamento do fuso horário de UTC.
+/-[hh][mm]
%Z
Os minutos são compensados do UTC como um número. Por exemplo, se o deslocamento de fuso horário (+/-[hhmm]) foi +0445, o deslocamento de minutos é +285.
+/-mmm
%%
Caractere percentual como literal
%

Considere uma coleção sales com o seguinte documento:

{
"_id" : 1,
"item" : "abc",
"price" : 10,
"quantity" : 2,
"date" : ISODate("2014-01-01T08:15:39.736Z")
}

A seguinte agregação utiliza $dateToString para retornar o campo date como strings formatadas:

db.sales.aggregate(
[
{
$project: {
yearMonthDayUTC: { $dateToString: { format: "%Y-%m-%d", date: "$date" } },
timewithOffsetNY: { $dateToString: { format: "%H:%M:%S:%L%z", date: "$date", timezone: "America/New_York"} },
timewithOffset430: { $dateToString: { format: "%H:%M:%S:%L%z", date: "$date", timezone: "+04:30" } },
minutesOffsetNY: { $dateToString: { format: "%Z", date: "$date", timezone: "America/New_York" } },
minutesOffset430: { $dateToString: { format: "%Z", date: "$date", timezone: "+04:30" } },
abbreviated_month: { $dateToString: {format: "%b", date: "$date", timezone: "+04:30" } },
full_month: { $dateToString: { format: "%B", date: "$date", timezone: "+04:30" } }
}
}
]
)

A operação retorna o seguinte resultado:

{
"_id" : 1,
"yearMonthDayUTC" : "2014-01-01",
"timewithOffsetNY" : "03:15:39:736-0500",
"timewithOffset430" : "12:45:39:736+0430",
"minutesOffsetNY" : "-300",
"minutesOffset430" : "270",
"abbreviated_month": "Jan",
"full_month": "January"
}
← $dateToParts (agregação)